<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://reboil.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Baltakatei</id>
	<title>Reboil - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://reboil.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Baltakatei"/>
	<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/Special:Contributions/Baltakatei"/>
	<updated>2026-10-12T05:25:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=The_Legend_of_Zelda:_Ocarina_of_Time&amp;diff=198248</id>
		<title>The Legend of Zelda: Ocarina of Time</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=The_Legend_of_Zelda:_Ocarina_of_Time&amp;diff=198248"/>
		<updated>2026-10-10T03:50:13Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot;  &amp;#039;&amp;#039;&amp;#039;The Legend of Zelda: Ocarina of Time&amp;#039;&amp;#039;&amp;#039; is a 1998 Nintendo 64 adventure game by Nintendo. It is the first game of the Legend of Zelda series to feature a 3D environment.    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats==  ==History== * 1998-11-21: First published in Japan. * 1998-11-23: Published in North America. {{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Legend of Zelda: Ocarina of Time&#039;&#039;&#039; is a [[1998]] [[Nintendo 64]] adventure game by [[Nintendo]]. It is the first game of the [[Legend of Zelda series]] to feature a 3D environment.    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[1998-11-21]]: First published in [[Japan]].&lt;br /&gt;
* [[1998-11-23]]: Published in [[North America]].&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=The_Fugitive_(1993_film)&amp;diff=198247</id>
		<title>The Fugitive (1993 film)</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=The_Fugitive_(1993_film)&amp;diff=198247"/>
		<updated>2026-10-09T04:29:25Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;The Fugitive&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; is a 1993 American action thriller film, directed by Andrew Davis with a script co-written by Jeb Stuart and David Twohy, from a previous story draft which Twohy had written. Based on the 1960s television series of the same name, it is the second release from the titular franchise. The film stars Harrison For...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;The Fugitive&#039;&#039;&#039;&#039;&#039; is a 1993 American [[action film|action]] [[thriller film]], directed by [[Andrew Davis (director)|Andrew Davis]] with a script co-written by [[Jeb Stuart (writer)|Jeb Stuart]] and [[David Twohy]], from a previous story draft which Twohy had written. Based on the [[The Fugitive (1963 TV series)|1960s television series of the same name]], it is the second release from the [[The Fugitive (franchise)|titular franchise]]. The film stars [[Harrison Ford]], [[Tommy Lee Jones]], [[Sela Ward]], [[Joe Pantoliano]], [[Andreas Katsulas]], and [[Jeroen Krabbé]]. The screenplay was written by [[David Twohy]] and [[Jeb Stuart (writer)|Jeb Stuart]] from a story by Twohy. The plot centers on Dr. Richard Kimble (Ford), a [[Vascular surgery|vascular surgeon]]. After being framed for the murder of his wife and sentenced to death, Dr. Kimble escapes from custody following a bus crash and sets out to find the real killer and clear his name while being hunted by the police and a team of [[United States Marshals Service|U.S. Marshals]].    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Director: [[Andrew Davis (director)]]&lt;br /&gt;
* Release date: [[1993-08-06]]&lt;br /&gt;
* Duration: 130 minutes&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Neal_Stephenson&amp;diff=198246</id>
		<title>Neal Stephenson</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Neal_Stephenson&amp;diff=198246"/>
		<updated>2026-10-07T18:15:56Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Neal Stephenson&#039;&#039;&#039; is a [[science fiction]] author.    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
== Works ==&lt;br /&gt;
=== Books ===&lt;br /&gt;
* [[1992]]: &#039;&#039;[[Snow Crash]]&#039;&#039;&lt;br /&gt;
* [[1994]]: &#039;&#039;[[Diamond Age]]&#039;&#039;&lt;br /&gt;
* [[1994]]: &#039;&#039;[[The Great Simoleon Caper]]&#039;&#039;&lt;br /&gt;
* [[1999]]: &#039;&#039;[[Cryptonomicon]]&#039;&#039;&lt;br /&gt;
* [[2003]]: &#039;&#039;[[Quicksilver]]&#039;&#039;&lt;br /&gt;
* [[2004]]: &#039;&#039;[[The Confusion]]&#039;&#039;&lt;br /&gt;
* [[2004]]: &#039;&#039;[[The System of the World]]&#039;&#039;&lt;br /&gt;
* [[2008]]: &#039;&#039;[[Anathem]]&#039;&#039;&lt;br /&gt;
* [[2011]]: &#039;&#039;[[Reamde]]&#039;&#039;&lt;br /&gt;
* [[2012]]: &#039;&#039;[[Some Remarks]]&#039;&#039;&lt;br /&gt;
* [[2015]]: &#039;&#039;[[Seveneves]]&#039;&#039;&lt;br /&gt;
* [[2019]]: &#039;&#039;[[Fall, or Dodge in Hell]]&#039;&#039;&lt;br /&gt;
* [[2021]]: &#039;&#039;[[Termination Shock]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Essays ===&lt;br /&gt;
* [[1996-12]]: &#039;&#039;[[Mother Earth Mother Board]]&#039;&#039; ([[wired.com]])&amp;lt;ref name=&amp;quot;wired_199612_mother-earth-mother-board&amp;quot;&amp;gt;[[Neal Stephenson]].  ([[1996-12]]).  “[https://web.archive.org/web/20000816225253/http://www.wired.com/wired/archive/4.12/ffglass_pr.html Mother Earth Mother Board]”.  &#039;&#039;[[wired.com]]&#039;&#039;.  [https://web.archive.org/web/20000816225253/http://www.wired.com/wired/archive/4.12/ffglass_pr.html Archived] from the [http://www.wired.com/wired/archive/4.12/ffglass_pr.html original] on [[2000-08-16]].  Accessed [[2026-10-07]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2008-09-12]]: [[Neal Stephenson]] gives a talk about &#039;&#039;[[Anathem]]&#039;&#039; for [[Talks at Google]].&amp;lt;ref name=&amp;quot;yt_20080920_google-anathem&amp;quot;&amp;gt;[[Neal Stephenson]].  ([[2008-09-12]]).  “[https://www.youtube.com/watch?v=lnq-2BJwatE Anathem]”.  &#039;&#039;[[youtube.com]]&#039;&#039;, [[Talks at Google]].  ID: &amp;lt;code&amp;gt;lnq-2BJwatE&amp;lt;/code&amp;gt;.  Accessed [[2023-03-25]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
* [[Books]]&lt;br /&gt;
* [[Science Fiction]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references group=fn /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Comments==&lt;br /&gt;
&amp;lt;references group=cmt /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:People]]&lt;br /&gt;
[[Category:Authors]]&lt;br /&gt;
[[Category:Science fiction]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Mcomix&amp;diff=198245</id>
		<title>Mcomix</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Mcomix&amp;diff=198245"/>
		<updated>2026-09-27T09:34:30Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;mcomix&amp;lt;/code&amp;gt;&#039;&#039;&#039; is a [[graphic novel]] reading application. It may be used to read images in [[ZIP]] ([[CBZ]]), [[RAR]], or [[7Zip]] archive files. It is a fork of the [[Comix]] application.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Source:&lt;br /&gt;
** SourceForge: https://sourceforge.net/projects/mcomix/&lt;br /&gt;
** Git (unofficial): https://github.com/benoit-pierre/mcomix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* To fix double-page illustrations being split in Double Page Mode, advance pages with CTRL + PG_DOWN to advance a single page.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Mcomix&amp;diff=198244</id>
		<title>Mcomix</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Mcomix&amp;diff=198244"/>
		<updated>2026-09-27T09:33:26Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;mcomix&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; is a graphic novel reading application. It is a fork of the Comix application.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats== * Source: ** SourceForge: https://sourceforge.net/projects/mcomix/ ** Git (unofficial): https://github.com/benoit-pierre/mcomix  ==Notes== * To fix double-page illustrations being split in Double Page Mode, advance pages with CTRL + PG_DOWN to advance a single...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;mcomix&amp;lt;/code&amp;gt;&#039;&#039;&#039; is a [[graphic novel]] reading application. It is a fork of the [[Comix]] application.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Source:&lt;br /&gt;
** SourceForge: https://sourceforge.net/projects/mcomix/&lt;br /&gt;
** Git (unofficial): https://github.com/benoit-pierre/mcomix&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* To fix double-page illustrations being split in Double Page Mode, advance pages with CTRL + PG_DOWN to advance a single page.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Bobiverse&amp;diff=198243</id>
		<title>Bobiverse</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Bobiverse&amp;diff=198243"/>
		<updated>2026-09-27T05:53:39Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Bobiverse&#039;&#039;&#039; is the name of a series of [[science fiction]] books by [[Dennis E. Taylor]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Author: [[Dennis E. Taylor]]&lt;br /&gt;
* Publication dates:&lt;br /&gt;
** [[2016-10-20]]: &#039;&#039;[[We Are Legion (book)|We Are Legion]]&#039;&#039;&lt;br /&gt;
** [[2017-03-18]]: &#039;&#039;[[For We Are Many]]&#039;&#039;&lt;br /&gt;
** [[2017-08-08]]: &#039;&#039;[[All These Worlds]]&#039;&#039;&lt;br /&gt;
** [[2021-01-26]]: &#039;&#039;[[Heaven&#039;s River]]&#039;&#039;&lt;br /&gt;
** [[2024-09-05]]: &#039;&#039;[[Not Till We Are Lost]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
; Andrea&lt;br /&gt;
: (b1c1) Twin sister of Alaina and sibling of Bob.&lt;br /&gt;
&lt;br /&gt;
; Alaina&lt;br /&gt;
: (b1c1) Twin sister of Andrea and sibling of Bob.&lt;br /&gt;
&lt;br /&gt;
; Archimedes &lt;br /&gt;
: (b1c30) A Deltan that Bob judges to be particularly intelligent and adept at tool creation. (b1c44) Bob makes Archimedes his Messiah to help Deltans survive their existential threat of Gorilloids.&lt;br /&gt;
&lt;br /&gt;
; Arnold&lt;br /&gt;
: (b1c35) A particularly strong Deltan named by Bob after [[Arnold Schwarzenegger]]. (b1c37) Wields an axe crafted by Archimedes to single-handedly dispatch many attacking gorilloids.&lt;br /&gt;
&lt;br /&gt;
; Arthur&lt;br /&gt;
: (b1c31) A particularly morose Bob that irritates Riker. (b1c47) Killed near [[Saturn]] by a nuke trap.&lt;br /&gt;
&lt;br /&gt;
; Bashful&lt;br /&gt;
: (b2c13) Created by Mario on May 2180 in Gliese 54. Their name is a reference to the dwarves of &#039;&#039;[[Snow White]]&#039;&#039;. (b2c30) Travels to [[Gliese 877]] in November 2187 and finds Other activity. Collects data via remote probes and forwards them to Mario. Is detected and remotely shut down by a mysterious weapon fired from a grid on a Death Star-shaped ship. Bashful&#039;s GUPPI self-destructs their ship via reactor overload to prevent capture.&lt;br /&gt;
&lt;br /&gt;
; Bender&lt;br /&gt;
: (b1c30) Names Delta Eridani 4 “Eden” as the birthplace of the Deltans. (b1c39) Departs with Luke from Delta Eridani for [[Gamma Leporis A]]. (b4) A Bob clone who was shot down while exploring a megastructure housing beaver-like creatures named Quins. (b4p1c34; a.k.a. &#039;&#039;&#039;Motorola&#039;&#039;&#039;) Bob finds Bender has been captured as just a matrix and has worked many years in captivity.&lt;br /&gt;
&lt;br /&gt;
; Bill&lt;br /&gt;
: (b1) One of the first Bobs. Decides to settle and manage [[Epsilon Eridani]] and research subspace theory and to refined ship designs.&lt;br /&gt;
&lt;br /&gt;
; Bob&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Robert Johansson&#039;&#039;&#039;, &#039;&#039;&#039;Bob-1&#039;&#039;&#039;) The main character. (b1c1) A software-based emulated human mind. (b1c13) Departs Earth on &#039;&#039;Heaven-1&#039;&#039;. (b1c27) Discovers intelligent life on Delta Eridani which he names Deltans and helps survive. (b4) Is on a quest to rescue Bender. (b2c12) Bob logs onto BobNet.&lt;br /&gt;
&lt;br /&gt;
; Bridget Brodeur&lt;br /&gt;
: See &#039;&#039;&#039;Bridget Sheehy&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Bridget Sheehy, Dr.&lt;br /&gt;
: (b2c25) A red-haired biologist attractive to Howard. Reveals rabbits can eat some common Vulcan flora and thus provide meat to colonists. (b2c29) Given name is “Bridget”. Develops a test using body odor to detect parasite egg infections for Landing colonists on Vulcan. (b2c35) Howard and Bridget create [[Irish Whiskey]] and begin dating. (b3c37) Rosie shuts down Bridget&#039;s life support to prevent Howard from scanning her brain. Bill intervenes and scans her brain anyway at Howard&#039;s behest. (b3c41) Howard activates Bridget&#039;s replicant.&lt;br /&gt;
&lt;br /&gt;
; Butterworth, Colonel&lt;br /&gt;
: (b1) Military leader of the remains of the United States of Eurasia. First Earth survivor to contact Riker and Homer. (b2c70) Agrees to Howardʼs proposal to become a replicant. (b3c7) Is diagnosed with a irreversible neurological degenerative dementia. Decides not to become a cognitively impaired replicant and instead chooses [[assisted suicide]] via neurotoxin.&lt;br /&gt;
&lt;br /&gt;
; Calvin&lt;br /&gt;
: (b1) A Bob in the same cohort as Hobbes. (b1c28) Explores Alpha Centauri with Hobbes, finding wreckage of a USE probe at AC-B. They fight and almost wipe out Medeiros at AC-A.&lt;br /&gt;
&lt;br /&gt;
; Christie Campbell&lt;br /&gt;
: (b3c18) Leader of the Vancouver Island enclave. Brought to [[82 Eridani]] by Mack.&lt;br /&gt;
&lt;br /&gt;
; Cranston, Minister&lt;br /&gt;
: (b1c33) FAITH leader based in San Diego. (b1c36) Attempts to mind control Riker. (b1c38) Introduces Riker to Julia Hendricks, a distant descendant of Robert Johannsonʼs sister, Andrea.&lt;br /&gt;
&lt;br /&gt;
; Deltans&lt;br /&gt;
: (b1) Intelligent inhabitants of Delta Eridani 4 found by Bob. (b1c27) Bob detects the fires of tool-using bat-pig creatures on Delta Eridani 4. (b1c30) Bob names the bat-pig natives of Delta Eridani 4 “Deltans”.&lt;br /&gt;
&lt;br /&gt;
; Diana&lt;br /&gt;
: (b1c11) A female Deltan that Archimedes fancies. (b2c11) Mates with Archimedes. (b2c19) Celebrates the exile of Bawbe. (b2c76) Dies of old age.&lt;br /&gt;
&lt;br /&gt;
; Dopey&lt;br /&gt;
: (b2c13) Created by Mario on May 2180 in Gliese 54. Their name is a reference to the dwarves of &#039;&#039;[[Snow White]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Doucette, Dr.&lt;br /&gt;
: (b1c11) A beautiful employee supervised by Dr. Landers who also assists Bob. (b1c13) Informs Bob of the death of Dr. Landers during the war on Earth.&lt;br /&gt;
&lt;br /&gt;
; Enoki Funguy&lt;br /&gt;
: (b4p2) An alias of &#039;&#039;&#039;Bob&#039;&#039;&#039; during his search for Bender in Heaven&#039;s River near Forest Hill along the Nirvana River.&lt;br /&gt;
&lt;br /&gt;
; ephemeral&lt;br /&gt;
: (b2) A derogatory term for biological humans that contrasts their short life span with the amortal nature of replicants.&lt;br /&gt;
&lt;br /&gt;
; FAITH&lt;br /&gt;
: (b1; a.k.a. &#039;&#039;&#039;Free American Independent Theocratic Hegemony&#039;&#039;&#039;) A conservative theocracy that sacked and replaced most of the [[United States of America]].&lt;br /&gt;
&lt;br /&gt;
; Fred&lt;br /&gt;
: (b3c1) A Delta resident of Caerleon. (b3c34) Killed by Bob for kidnapping Archimedes.&lt;br /&gt;
&lt;br /&gt;
; Frieda&lt;br /&gt;
: (b4p1c32) Quinlan Resistance leader. Gives Bob into custody of Natasha for money.&lt;br /&gt;
&lt;br /&gt;
; Gandalf&lt;br /&gt;
: (b4p1c9) Leader of the Gamers. Proposes a method for entering the Eta Leporis megastructure.&lt;br /&gt;
&lt;br /&gt;
; Goku&lt;br /&gt;
: (b1c28; a.k.a. &#039;&#039;&#039;Bob-10&#039;&#039;&#039;) Explores Alpha Centauri with Calvin. They find wreckage of a USE probe at AC-B. They fight and almost wipe out Medeiros at AC-A.&lt;br /&gt;
&lt;br /&gt;
; Gorilloids&lt;br /&gt;
: (b1c35) Inhabitants of Epsilon Delta that prey upon the Deltans.&lt;br /&gt;
&lt;br /&gt;
; Gudmund Valter&lt;br /&gt;
: (b1c33) Ex-military leader of Spitsburgen Island.&lt;br /&gt;
&lt;br /&gt;
; Herschel &lt;br /&gt;
: (b3c22) A Bob who, along with Neil, covertly examine an Other wreck in the Kuiper Belt of Delta Pavonis.&lt;br /&gt;
&lt;br /&gt;
; Hoffa&lt;br /&gt;
: (b2c19) A Deltan who criticizes Bob&#039;s plans.&lt;br /&gt;
&lt;br /&gt;
; Homer&lt;br /&gt;
: (b1) A Bob created by Riker to assist him with the reconnaissance of Sol system after Bob settles Epsilon Eridani. Adopts the cartoon Homer voice and appearance to try and tease Riker into relaxing but fails.&lt;br /&gt;
&lt;br /&gt;
; Howard&lt;br /&gt;
: (B1) A clone of Riker tasked with overseeing the Earth refugee colonists that settled Vulcan. (B2) Develops feelings for the human Dr. Bridget Sheehy. (b2c69) attends the funeral is Stefane&#039;s Bridget&#039;s Catholic husband. Tests out Bill&#039;s prototype android, Manny, by attending the wake in it.&lt;br /&gt;
&lt;br /&gt;
; Howie&lt;br /&gt;
: (b2c69; a.k.a. &#039;&#039;&#039;Howard&#039;&#039;&#039; ) 13-year-old human son of Bridget and Stefane. Fascinated by his namesake, Howard. (b3c54) Celebrates his 75th birthday with family and Riker.&lt;br /&gt;
&lt;br /&gt;
; Hugh&lt;br /&gt;
: (b4p1c9) A Skipper of the Singularity Project.&lt;br /&gt;
&lt;br /&gt;
; Hungry&lt;br /&gt;
: (b2c13) Created by Mario on May 2180 in Gliese 54. Their name is an obtuse reference to the dwarves of &#039;&#039;[[Snow White]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Julia Hendricks&lt;br /&gt;
: (b1c38) Descendant of one of Bob&#039;s sisters. Mother of Justin Hendriks. (b3c54) Celebrates 75th birthday with Uncle Will.&lt;br /&gt;
&lt;br /&gt;
; Justin Hendriks&lt;br /&gt;
: (b1c54) Son of Julia.&lt;br /&gt;
&lt;br /&gt;
; Katsu Ito&lt;br /&gt;
: (b3c18) Leader of the Japanese enclave carried by Mack to colonize [[82 Eridani]].&lt;br /&gt;
&lt;br /&gt;
; Kiroshi, General&lt;br /&gt;
: (b3c25) Military leader of Takama, the Japanese colony at [[82 Eridani]] during the Medeiros attack.&lt;br /&gt;
&lt;br /&gt;
; Landers, Dr.&lt;br /&gt;
: (b1c2) An employee of Applied Synergetics Inc. that guides Bob following his creation from the frozen brain of Robert Johansson. (b1c11) Supervisor of Dr. Doucette. (b1c13) Killed during the global war on Earth that wiped out most humans.&lt;br /&gt;
&lt;br /&gt;
; Lianne&lt;br /&gt;
: (b2c69) Daughter of Bridget and Stefane.&lt;br /&gt;
&lt;br /&gt;
; Linus&lt;br /&gt;
: (b1) A Bob created in Epsilon Eridani who chooses to explore. (b1c40) Discovers a failed Australian replicant probe in Epsilon Indi named Henry Roberts.&lt;br /&gt;
&lt;br /&gt;
; Luke&lt;br /&gt;
: (b1c39) Departs from Delta Eridani for [[Kappa Ceti]].&lt;br /&gt;
&lt;br /&gt;
; Mack &lt;br /&gt;
: (b3c18) A Bob who brings colonists from Vancouver Island and Japan to 82 Eridani. (b3c20) Shot offline by Medeiros in a sneak attack in 82 Eridani. (b23c30) [[Bobiverse/Book 3, full text (2017)/Chapter 30#mack-awake|Restarted]] after Medeiros is defeated.&lt;br /&gt;
&lt;br /&gt;
; Mario&lt;br /&gt;
: (b1c57) Finds evidence of genocide in Beta Hydri. (b2c10) Finds evidence of genocide in Zeta Tucanae.&lt;br /&gt;
&lt;br /&gt;
; Marvin&lt;br /&gt;
: (b1c39) Stays behind to help Bob protect the Deltans as Luke and Bender depart Delta Eridani. (b2c24) Drops Bob&#039;s Sky God project in [[Delta Eridani]] and heads to [[Pi³ Orionis]].&lt;br /&gt;
&lt;br /&gt;
; Medeiros&lt;br /&gt;
: (B1) A brazillian military officer replicant. (B1c28) Mostly defeated at Alpha Centauri by Calvin and Goku. (B3c21) Attacks and disables Mack at [[82 Eridani]] in order to capture printers.&lt;br /&gt;
&lt;br /&gt;
; Milo&lt;br /&gt;
: (b1) A bob that discovers and names Vulcan and Romulus in [[Omicron² Eridani]]. (B1c46) is killed by missiles while exploring [[82 Eridani]].&lt;br /&gt;
&lt;br /&gt;
; Motorola&lt;br /&gt;
: (b4p1c34) An alias for Bender.&lt;br /&gt;
&lt;br /&gt;
; Natasha&lt;br /&gt;
: (b4p1c34; a.k.a. &#039;&#039;&#039;ko Hoina, Madame&#039;&#039;&#039;) Quinlan aristocrat supporting the Resistance. (b4p1c32) Pays Freida to capture Bob.&lt;br /&gt;
&lt;br /&gt;
; Neil&lt;br /&gt;
: (b3c22) A Bob who, along with Herschel, covertly examine an Other wreck in the Kuiper Belt of Delta Pavonis.&lt;br /&gt;
&lt;br /&gt;
; Others&lt;br /&gt;
: (b1c57) Mario finds evidence of genocide in Beta Hydri by an unknown group that absconded with 99% of planetary fauna biomass and asteroid and planetary surface metals. Mario discovers their metal-collecting ants are powered by SUDDAR scan radiation.  (b2c10) Mario finds evidence of genocide by Others in Zeta Tucanae. (b2c55) Establish audio communication in Mandarin with Bill at GL 54.  They show no remorse for the genocide of Zeta Tucanae. They notify Bill of their plans to harvest resources from Sol and Epsilon Eridani.  (b3c60) Their invasion fleet is detected en route to Earth. Attacked by Bobs in a surprise attack.&lt;br /&gt;
&lt;br /&gt;
; quinlans&lt;br /&gt;
: (b4p1c12) Name the inhabitants of Heaven&#039;s River call themselves. Term discovered by the Skippies via surreptitious surveillance of acoustic data gleaned from the megastructure at the Quinlan megastructure in Eta Leporis.&lt;br /&gt;
&lt;br /&gt;
; raptors&lt;br /&gt;
: (B2) A predator of Vulcan resembling velociraptors that threatens Landing colonists.&lt;br /&gt;
&lt;br /&gt;
; Richards, Captain&lt;br /&gt;
: (b3c25) Asgard military leader. Tells Bill about how Mack delegted mosquito killer production to Asgard colonists, allowing them to repurpose them for planetary defense against Medeiros.&lt;br /&gt;
&lt;br /&gt;
; Riker&lt;br /&gt;
: (b1; a.k.a. &#039;&#039;&#039;Will&#039;&#039;&#039;, &#039;&#039;&#039;William&#039;&#039;&#039;) The second replicate Bob ever created. Returns to Sol system after first Bob settles Epsilon Eridani. Leads the evacuation effort of Earth, assisted by Homer. (b158) Successfully leads effort to build Exodus-1 and Exodus-2 to evacuate USE survivors from Earth. (b3c54) Attends the 75th birthday of Howie, son of Julia Hendricks. (b3c58) Tells Herschel that he now goes by the name &#039;&#039;&#039;Will&#039;&#039;&#039; in order to dissociate himself with &#039;&#039;[[Star Trek]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Rosie&lt;br /&gt;
: (b2c69) Daughter of Bridget and Stefane. (B3; a.k.a. Lianne)&lt;br /&gt;
&lt;br /&gt;
; Sharma, Minister&lt;br /&gt;
: (b2c18) [[Maldives]] minister. Defends Riker against bigotry against replicants from New Zealand Minister Gerrold.&lt;br /&gt;
&lt;br /&gt;
; Sheehy, Dr.&lt;br /&gt;
: See &#039;&#039;Bridget Sheehy&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; Skippies&lt;br /&gt;
: (b4p1c5) Bobs who have dedicated themselves towards building a technological [[singularity]].&lt;br /&gt;
&lt;br /&gt;
; Sleepy&lt;br /&gt;
: (b2c13) Created by Mario on May 2180 in Gliese 54. Their name is a reference to the dwarves of &#039;&#039;[[Snow White]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Spits&lt;br /&gt;
: (b1c33) Inhabitants of [[Svalbard|Spitsburgen Island]], led by Gudmund Valter. Are in possession of the [[Svalbard Global Seed Vault]] and the Svalbard Global Genetic Diversity Vault which they hold hostage as leverage against Riker to get a more favorable position in the evacuation queue.&lt;br /&gt;
&lt;br /&gt;
; Snarks&lt;br /&gt;
: (b4) See &#039;&#039;&#039;Quinlan&#039;&#039;&#039;. (b4p1c8) Tentative name by Garfield for the inhabitants of the Eta Leporis megastructure. (b4p2c12) Determined by the Skippies to call themselves “Quinlans”.&lt;br /&gt;
&lt;br /&gt;
; Snidely Whiplash (Quinlan)&lt;br /&gt;
: (b4p2c16) A noble Quinlan with a business degree from the University of Peachland who boards the &#039;&#039;Hurricane&#039;&#039;. (b4p2c16) Fails to accuse Enoki Funguy of being the wanted quinlan carrying the funerary box.&lt;br /&gt;
&lt;br /&gt;
; Stéphane&lt;br /&gt;
: (b2c16) Leader of a group of raptor hunters on Vulcan.&lt;br /&gt;
&lt;br /&gt;
; Steven Gilligan, Professor&lt;br /&gt;
: (b4p1c16) A replicant former department chair at the University of Landing on Vulcan that Will visits at the Vulcan Post-Life Arcology. An expert in artificial habitats whose insights Will desires regarding the Quinlan megasteucture at Eta Leporis.&lt;br /&gt;
&lt;br /&gt;
; Theresa&lt;br /&gt;
: (b4p2c16) An elderly Quinlan traveling with her granddaughter Belinda who boards the &#039;&#039;Hurricane&#039;&#039;. Berates the businessman Snidely Whiplash using her status as former faculty of the University of Peachland. (b4p2c18) Debates [[moral philosophy]] with the boat crew and Bob. Discerns Bob&#039;s alien nature but trusts in their moral character. (b4p2c20; a.k.a. &#039;&#039;&#039;Theresa Sykorski&#039;&#039;&#039;) Covers for Bob in order to protect his cargo from Quinlan inspection.&lt;br /&gt;
&lt;br /&gt;
; VEHEMENT&lt;br /&gt;
: (b1c38) Earth survivors rebelling against Riker&#039;s rule. (b2; a.k.a. &#039;&#039;&#039;Voluntary Extinction of Human Existence Means Earthʼs Natural Transformation&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
; Will&lt;br /&gt;
: See &#039;&#039;&#039;Riker&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; 82 Eridani&lt;br /&gt;
: (b1c46) A star system with two habitable worlds discovered by Milo. Milo is killed by missiles soon after arriving into orbit around one of the worlds. (b1c60) Khan arrives with a retaliation fleet. (b3c18) Mack arrives with Vancouver Island and Japan colonists.&lt;br /&gt;
&lt;br /&gt;
; [[Alpha Centauri]]&lt;br /&gt;
: The nearest star system to Earth. (b1c22) Destination for Calvin and Goku after departing Epsilon Eridani in September 2150. (b1c28) Visited by Calvin and Goku in November 2163.&lt;br /&gt;
&lt;br /&gt;
; Augsburg, Germany&lt;br /&gt;
: A gathering place for some Earth survivors. Gathering place for USE survivors.&lt;br /&gt;
&lt;br /&gt;
; Aszjan&lt;br /&gt;
: (b2c77, a.k.a. &#039;&#039;&#039;Delta Pavonis 4&#039;&#039;&#039;, &#039;&#039;&#039;DP-4&#039;&#039;&#039;) Home planet of the Pavs. (b2c77) is sterilized and strip mined by the Others of metal.&lt;br /&gt;
&lt;br /&gt;
; Beetle Juice&lt;br /&gt;
: (b4p2c16) A Quinlan town along the Nirvana River. Where Snidely Whiplash protests a cargo inspection that Enoki takes advantage of.&lt;br /&gt;
&lt;br /&gt;
; Beta Hydri&lt;br /&gt;
: (b1c57) A star system explored by Mario. Scoured clean of easily-accessible metal. Habitable planets show signs of violent and rapid sterilization via [[gamma ray burst]]s.&lt;br /&gt;
&lt;br /&gt;
; Delta Eridani&lt;br /&gt;
: (b1) A star system explored by Bob. (b1c?) Home of the Deltons that Bob and Marvin help survive.&lt;br /&gt;
&lt;br /&gt;
; Delta Pavonis&lt;br /&gt;
: (b2) Home star system of the Pavs.&lt;br /&gt;
&lt;br /&gt;
; Delta Pavonis 4&lt;br /&gt;
: See &#039;&#039;&#039;Aszjan&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; Earth&lt;br /&gt;
: (b1) The original planet of humans and the Bobs.&lt;br /&gt;
&lt;br /&gt;
; Eden&lt;br /&gt;
: (b1c30; a.k.a. &#039;&#039;&#039;Delta Eridani 4&#039;&#039;&#039;) The planet of the Deltans. Named by Bender.&lt;br /&gt;
&lt;br /&gt;
; Epsilon Indi&lt;br /&gt;
: (b1c40) A system where Australian replicant Henry Roberts arrived and went insane. (b2c46) Rudy and Edwin arrive with colonists for KKP, the habitable terrestrial. (b3c62) The system&#039;s jovian, Big Top, is now inhabited by 1 million people in Howard and Bridgetʼs floating city Tantor.&lt;br /&gt;
&lt;br /&gt;
; Eta Leporis&lt;br /&gt;
: (b4p1c2) A star system with a megastructure and hostile drones (see &#039;&#039;&#039;Boojums&#039;&#039;&#039;) that Bob found likely captured Bender.&lt;br /&gt;
&lt;br /&gt;
; Forest Hill&lt;br /&gt;
: (b4p2c14) A town asking the Nirvana River near the spoke opposite that of Halep’s Ending. &lt;br /&gt;
&lt;br /&gt;
; Galen Town &lt;br /&gt;
: (b4p1c21) The second settlement Bob, Bill, Garfield, and Bridget visit on Heaven&#039;s River.&lt;br /&gt;
&lt;br /&gt;
; Garack’s Spine&lt;br /&gt;
: (b4p1c21) The first settlement Bob, Bill, Garfield, and Bridget visit on Heaven&#039;s River.&lt;br /&gt;
&lt;br /&gt;
; Gliese 54&lt;br /&gt;
: (b2c54; a.k.a. &#039;&#039;&#039;GL 54&#039;&#039;&#039; ) Bill tells Hal that Others are headed from GL 877 to GL 54.&lt;br /&gt;
&lt;br /&gt;
; Gliese 877&lt;br /&gt;
: (b2c53; a.k.a. &#039;&#039;&#039;GL 877&#039;&#039;&#039;) Hal tests Zapper shielding and succeeds.&lt;br /&gt;
&lt;br /&gt;
; [[HIP 14101]]&lt;br /&gt;
: (b2c67) Howard arrives after departing Vulcan, Omicron² Eridani following Bridgetʼs marriage to Stéphane Brodeur. (b3c20) Howard discovers life in the largest jovian at the border of the habitable zone which he calls Odin.&lt;br /&gt;
&lt;br /&gt;
; Landing&lt;br /&gt;
: (b2) Primary settlement on Vulcan.&lt;br /&gt;
&lt;br /&gt;
; [[40 Eridani|Omicron&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Eridani]]&lt;br /&gt;
: (b1) Star system explored by Milo. Contains the twin habitable planets discovered by Milo: Vulcan and Romulus. (b1c59) Is the destination for the USE colonists from Earth aboard &#039;&#039;Exodus-1&#039;&#039; and &#039;&#039;Exodus-2&#039;&#039; built by Riker, Homer, Arnold, and Ralph.&lt;br /&gt;
&lt;br /&gt;
; Misty Falls&lt;br /&gt;
: (b4p2c20) Disembarking point for Enoki, Theresa, and Belinda.&lt;br /&gt;
&lt;br /&gt;
; Odin&lt;br /&gt;
: (b3c20) A jovian of [[HIP 14101]]. Howard discovers floating life that he uses to entice Bridget into replicating.&lt;br /&gt;
&lt;br /&gt;
; Okinawa&lt;br /&gt;
: (b1c33) A gathering place for some Earth survivors.&lt;br /&gt;
&lt;br /&gt;
; Poseidon&lt;br /&gt;
: (b4p1c20) Security systems protecting the mats have created a new ecosystem free of large predators such as the leviathan.&lt;br /&gt;
&lt;br /&gt;
; Quin&lt;br /&gt;
: (b4p1c14) A term Bridget coins for the radioactive wasteland that is the Quinlan home planet in Eta Leporis.&lt;br /&gt;
&lt;br /&gt;
; Romulus&lt;br /&gt;
: (b1c19) The smaller of two habitable twin planets (0.7 M⊕) discovered and named by Milo in July 2152. Its larger twin is Vulcan. Romulus has less [[carbon dioxide]], a thinner atmosphere, a lower surface temperature, ice caps, and a sparse ecosystem with no fauna larger than a wolf. Milo believes the planet may have recently suffered a major extinction event.&lt;br /&gt;
&lt;br /&gt;
; San Diego&lt;br /&gt;
: (b1c33) A gathering place for some Earth survivors, mostly FAITH.&lt;br /&gt;
&lt;br /&gt;
; Sol&lt;br /&gt;
: (b1) The original star system of humans and the Bobs.&lt;br /&gt;
&lt;br /&gt;
; [[Svalbard|Spitsburgen Island]]&lt;br /&gt;
: An archipelago north of [[Norway]] between the [[Arctic Ocean|Arctic]] and [[Atlantic Ocean]]. (b1c33) A gathering place for some Earth survivors (a.k.a. &#039;&#039;&#039;Spits&#039;&#039;&#039;). Location of the [[Svalbard Global Seed Vault]] and associated Svalbard Global Genetic Diversity Vault.&lt;br /&gt;
&lt;br /&gt;
; Tantor&lt;br /&gt;
: (b3c62) A floating city in the atmosphere of Epsilon Indiʼs jovian, Big Top. City construction was facilitated by Howard and Bridget who tested the prototype &#039;&#039;Rivendell&#039;&#039; in [[HIP 14101]]ʼs jovian, Odin. Inhabited by 1 million people.&lt;br /&gt;
&lt;br /&gt;
; Vulcan&lt;br /&gt;
: (b1c19; a.k.a. &#039;&#039;&#039;OE-1A&#039;&#039;&#039;) The larger of two habitable twin planets (0.9 M⊕) discovered and named by Milo in July 2152. Its smaller twin is Romulus. Vulcan has more [[carbon dioxide]], a thicker atmosphere, and warmer surface temperature. Has a robust ecosystem with large fauna. (b1c61) Colonel Butterworth chooses this planet for USE evacuees aboard the Exodus-1 and Exodus-2 to settle.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; AMI&lt;br /&gt;
: (b1c2; a.k.a. &#039;&#039;&#039;artificial machine intelligence&#039;&#039;&#039;) A thinking machine not derived from a scanned human mind as a replicant is. Lacks creative and improvisation abilities compared to flesh humans or replicants.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Exodus-1&#039;&#039;&lt;br /&gt;
: (b1c54) One of the first two ships built by Riker, Homer, Arthur, and Ralph for the survivors of Earth.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Exodus-2&#039;&#039;&lt;br /&gt;
: (b1c54) One of the first two ships built by Riker, Homer, Arthur, and Ralph for the survivors of Earth.&lt;br /&gt;
&lt;br /&gt;
; GUPPI&lt;br /&gt;
: (b1; a.k.a. &#039;&#039;&#039;Guppy&#039;&#039;&#039;, &#039;&#039;&#039;General Unit Primary Peripheral Interface&#039;&#039;&#039;) An AMI assistant provided to Bob by Landers. (b1c13) Modified by Bob to resemble [[Admiral Ackbar]] from [[Star Wars]]. (b2) &lt;br /&gt;
&lt;br /&gt;
; HEAVEN&lt;br /&gt;
: (b1; a.k.a. &#039;&#039;&#039;Habitable Earths Abiogenic Vessel Exploration Network&#039;&#039;&#039;) FAITHʼs interstellar von Neumann probe project.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Heaven-1&#039;&#039;&lt;br /&gt;
: (b1c12) The HEAVEN space ship built by FAITH that is Bob&#039;s body for his journey from Earth.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Hulk-1&#039;&#039;&lt;br /&gt;
: (b3c24) An Other carrier wreck in Delta Pavonis that Herschel and Neil examine.&lt;br /&gt;
&lt;br /&gt;
; Hurricane&lt;br /&gt;
: (b4p2) A Quinlan watercraft Bob rides.&lt;br /&gt;
&lt;br /&gt;
; kraken&lt;br /&gt;
: (b2c49) An aquatic predator of Poseidon (Eta Cassiopeiae). (b2c49) Regularly eats settlers from floating mats, prompting development of flying cities.&lt;br /&gt;
&lt;br /&gt;
; replicant&lt;br /&gt;
: (b1c2) A thinking machine that emulates a biological human brain derived from a nerve tissue scanning process.&lt;br /&gt;
&lt;br /&gt;
; roamer&lt;br /&gt;
: (b1c3) An AMI-controlled drone capable of assembling and repairing machinery with a wide assortment of tools.&lt;br /&gt;
&lt;br /&gt;
; SCUT&lt;br /&gt;
: (b1c25) A faster-than-light communications device created by Bill. (b2; a.k.a. &#039;&#039;&#039;Subspace Communications Universal Transceiver&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
; SUDDAR&lt;br /&gt;
: (b1c7) A scanning technology capable of remotely resolving the shape of physical objects. Basically, space radar. (b2; a.k.a. &#039;&#039;&#039;Subspace Deformation Detection and Ranging&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
; SURGE drive&lt;br /&gt;
: (b1c7) A device that warps space to enable slower-than-light relativistic interstellar mass transport. Generates no reaction mass plume. (b2; a.k.a. &#039;&#039;&#039;Subspace Reactionless Geotactic Emulation&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
; Zapper&lt;br /&gt;
: (b2c53) Hal successfully proves Zapper shielding is effective in Gliese 877.&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
====[[/b1|Book 1: We Are Legion]]====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 1: &#039;&#039;[[We Are Legion (book)|We Are Legion]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| [[/b1/p1/c1|p1c1]]&lt;br /&gt;
| Bob Version 1.0&lt;br /&gt;
| Bob attends two seminars about space exploration and [[Von Neumann Replicator]]s at a science fiction convention. Bob calls his mother and talks to his sister. Bob is struck by an automobile and killed. &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p1c2&lt;br /&gt;
| Bob Version 2.0&lt;br /&gt;
| Bob wakes up 117 years later as a machine intelligence owned by FAITH, their flesh and blood brain destructively scanned in order to create a candidate artificial intelligence slave.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c3&lt;br /&gt;
| Bob – June 25, 2133&lt;br /&gt;
| Bob controls some roamers (robotic spiders) to stack some blocks.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c4&lt;br /&gt;
| Bob – July 15, 2133&lt;br /&gt;
| Bob learns the internet is no longer a thing in FAITH. Information is now hidden or inaccessible by default. Bob resolves to find freedom someway somehow.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p1c5&lt;br /&gt;
| Bob – July 18, 2133&lt;br /&gt;
| A surprise visit from Minister Travis of the ministry of Truth. Bob is given access to a space, station management, simulation and information library.&lt;br /&gt;
| Bob, Landers, Travis&lt;br /&gt;
|-&lt;br /&gt;
| p1c6&lt;br /&gt;
| Bob – July 19, 2133&lt;br /&gt;
| Bob learns to manage AMI controlled roamers in order to affect repairs on equipment such as 3D printers. Bob learns from Landers that his purpose is to be a manager of a [[von Neumann probe]] expedition into space. &lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c7&lt;br /&gt;
| Bob – July 25, 2133&lt;br /&gt;
| Dr. Landers explains to Bob the scope and progress of other rival political blocks of United States of Eurasia, the Brazilian group, the African Republic, and the Australian group. As far as their own private von Neumann exploration projects are concerned. China is likely to be fastest, but relying entirely upon AMIs. Brazil is likely to rely upon sabotage of other projects and the USE is most likely to colonize a star system once found. Additionally, Landers talks about the subspace drive technology that allows faster than light mass transport across interstellary distances.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c8&lt;br /&gt;
| Bob – August 4, 2133&lt;br /&gt;
| Bob aids in the defense of the research complex in which he is housed. Upon subdoing the black-clothed invaders, Landers asks Bob to retreat his roamers back into the training area. Landers tells Bob there is a tactical nuke installed beneath the training facility as a safeguard against Bob gaining freedom. Bob makes a crack about the &#039;&#039;[[Andromeda Strain]]&#039;&#039;, a [[Michael Crichton]] novel. With a single roamer drone that was able to hide in the air ducts of the facility during the battle, Bob is able to build a 3D map of the facility surrounds and concludes that no such tactical nuke is present. Bob discovers the room housing the computers for himself and the four other candidates; Kenneth is his remaining competitor.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c9&lt;br /&gt;
| Bob – August 6, 2133&lt;br /&gt;
| Bob witnesses a confrontation by FAITH Minister Jacoby against Landers using wall vibrations via a roamer bot.&lt;br /&gt;
| Bob, Landers, Jacoby&lt;br /&gt;
|-&lt;br /&gt;
| p1c10&lt;br /&gt;
| Bob – August 10, 2133&lt;br /&gt;
| Bob wakes up with a week-long Gap in his memory. Landers tells Bob that a bomb destroyed the matrices storing his mind and that Bob had been destroyed and then recreated from backups. Bob thinks about his own existence and what defines life. {{bkc|Life is defined by others asserting that you are alive across time and space. Life is the degree to which others believe that you are alive and have a relationship with you asserting as much. The same can be said for personhood as well. Integration across time and articulation across space is what defines life.}} Landers informs Bob that the only other replicant competitor candidate has been decommissioned. Bob concludes that Kenneth the other only living replicants cube that he saw in the room has not been deactivated since now. Bob is running on Kennethʼs old hardware. Bob and frantically distracts Landers after mentioning Kennethʼs name. Landers informs Bob that launch is in a month and can be accelerated if need be. Landers tells Bob that they are now going to be awake continuously, save for short sleep periods required for backups so that Bob can help assist with the project.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c11&lt;br /&gt;
| Bob – August 15, 2133&lt;br /&gt;
| Bob chats with Dr. Doucette, a beautiful substitute for Landers.  Bob learns of software enforcement of his mission.&lt;br /&gt;
| Bob, Doucette&lt;br /&gt;
|-&lt;br /&gt;
| p1c12&lt;br /&gt;
| Bob – August 17, 2133&lt;br /&gt;
| Landers awakens Bob after another attack that has fatally wounded more staff. Landers gives Bob a file with not only new training objectives but also access keys to bypass and disable software restrictions that would enslave Bob. Bob awakens on launch day in their ship, commanding the entire vessel. &lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c13&lt;br /&gt;
| Bob – August 17, 2133 – En Route&lt;br /&gt;
| Bob prepares to launch his spaceship, frame jacking his perception of time in order to read up on his mission objectives and training information. Landers begins a radio transmission to Bob, warning him of a missile strike. Upon hearing the word “missile”, before Landers can finish their sentence, Bob searches his sensors and detects two oncoming missiles. Bob immediately launches from his dock. Bob launches two mining drones to act as makeshift chaffe. Bob succeeds in destroying one missile; the other missile strikes the station he was docked at. A naval engagement among several space-faring factions surround the station as Bob departs. &amp;lt;br/&amp;gt; Bob defuses his software self-destruct traps. Bob finally learns of a Brazilian probe, likely hostile, headed his way also to Epsilon Eridani. Bob reviews plans for the remaining 145-ish days left until encounter.  Bob learns Landers was killed in the Earth war. Bob finishes Spike (his VR cat), Jeeves (a butler), and Guppy (GUPPI). Bob disables his endocrine system restrictions and breaks down emotionally at losing his family. Guppy informs Bob of many nuclear detonations on Earth. Bob concludes he will not receive any help.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p2c14&lt;br /&gt;
| Bob – August 2144 – Epsilon Eridani&lt;br /&gt;
| Bob enters the [[Epsilon Eridani]] system. Bob reviews plans for encounter with Brazilian probe. Bob concludes that ideal plan is to appear ignorant, receive first shot, play possum, then counter-attack. Bob decides the best course of action is to destroy Brazilian probe outright rather than to engage in protracted long-term battle. Bob begins deploying factory resources to execute plan. &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c15&lt;br /&gt;
| Bob – September 2144 – Epsilon Eridani&lt;br /&gt;
| Bob encounters the Brazilian probe and fights. Bob deploys his scheme and ultimately wins the battle, thanks to the Brazilian ship favoring torpedo count at the expense of upgrading ship capabilities to adapt to changing battle conditions. In other words, Bob won due to the Brazilian ship having only four missiles.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c16&lt;br /&gt;
| Bob – September 2144 – Epsilon Eridani&lt;br /&gt;
| Bob surveys planets of Epsilon Eridani. Bob finally gives in to Guppyʼs insistence on replicating. Bob orders the creation of more Bobs.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c17&lt;br /&gt;
| Bob – July 2145 – Epsilon Eridani&lt;br /&gt;
| Bob initializes more Bobs. A Bob wakes up to find they are a copy. Original Bob holds a meeting among Bobs: Bob-2 is Riker. Riker wishes to visit Earth again. Milo wants to avoid Earth and any hostile probe. Riker and Milo butt heads. Mario is quiet. Bill is most amenable to Bob but prefers research rather than exploration.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c18&lt;br /&gt;
| Bill – September 2145 – Epsilon Eridani&lt;br /&gt;
| Bill watches Bob, Mario, and Milo leave Epsilon Eridani. Riker plans to build a clone to return to visit Earth. Bob is traveling to Delta Eridani. Anti-social Mario is headed to Beta-Hydri.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c19&lt;br /&gt;
| Milo – July 2152 – Omicron² Eridani&lt;br /&gt;
| Milo discovers life at Omicron² Eridani on a binary pair of planets. Milo names them Vulcan and Romulus.&lt;br /&gt;
| Milo&lt;br /&gt;
|-&lt;br /&gt;
| p2c20&lt;br /&gt;
| Bill – December 2145 – Epsilon Eridani&lt;br /&gt;
| Bill and his clone, Garfield, bid farewell to Riker and Riker&#039;s clone, Homer. &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c21&lt;br /&gt;
| Riker – January 2157 – Sol&lt;br /&gt;
| Riker and Homer perform reconnaissance and surveillance on the Sol system. Riker and Homer witness a Brazilian ship destroy a decoy ship. Homer discovers that the Brazilian ships are dropping asteroids upon China.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c22&lt;br /&gt;
| Bill – September 2150 – Epsilon Eridani&lt;br /&gt;
| Bill and Garfield bid farewell to Goku, Linus, and Calvin. Calvin and Goku were inseparable but also constantly fighting. Bill and Garfield equipped Calvin and Goku with a ship with cloaking ability, fighting ability, and strong engines to coast undetected. Bill and Garfield note that Calvin and Goku would likely find hostile encounters at their destination of [[Alpha Centauri]]. &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c23&lt;br /&gt;
| Milo – February 2153 – Omicron² Eridani&lt;br /&gt;
| Milo is in Omicron² Eridani. Milo decides not to duplicate itself and instead decides to move on towards [[82 Eridani]]. Milo sends a report back to Bill and proceeds to travel to a new star system.&lt;br /&gt;
| Milo&lt;br /&gt;
|-&lt;br /&gt;
| p2c24&lt;br /&gt;
| Riker – April 2157 – Sol&lt;br /&gt;
| Riker and Homer combat the six Brazillian ships. Riker and Homer destroy four Brazilians behind the Sun. Riker and Homer go silent until they reach Earth and use it to hide their presence from the remaining two Brazilians. Riker and Homer confront the remaining two Brazilians. Homer is struck silent while Riker maneuvers to destroy the last Brazilian ship.&lt;br /&gt;
: Riker deflects the several [[Chicxulub crater|Chicxulub]]-scale asteroids the Brazilian space force had intended to use in retaliation against all Earth life for the destruction of [[Brasil]]. Riker found the Brazilian ships had been left without factories or shuttles to rebuild their forces or even occupy Earth.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c25&lt;br /&gt;
| Bill – September 2151 – Epsilon Eridani&lt;br /&gt;
| Bill and Garfield test out [[faster-than-light]] communications. Bill and Garfield plan to deploy IPv8 internet. Bill and Garfield determine that a communication node is required at least every 25 light years. Bill and Garfield decide to transmit plans for the the FTL communications to the other Bobs.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c26&lt;br /&gt;
| Riker – April 2157 – Sol&lt;br /&gt;
| Riker discusses logistics for the recovery of human life on Earth. USE Colonel Butterworth tells Riker that the human population has been reduced to several tens of millions of people. Butterworth tells Riker that the global war that occurred was hard-fought and that the last resilient space force remnants were the small survivors of a much larger conflict, but that their ability to drop rocks from space allowed them to massacre billions of lives at the end. Colonel Butterworth asks Riker for help in migrating the survivors to another habitable world since Earth&#039;s habitability will not recover for at least another 5 to 10 000 years. Riker tells Butterworth that the habitability of candidate destination planets has not yet been transmitted to him from Bill that in a few years information may be available. &lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c27&lt;br /&gt;
| Bob – April 2165 – Delta Eridani&lt;br /&gt;
| Bob arrives at Delta Eridani. Bob discovers an oxygen atmosphere around one planet. Bob discovers fire-using individuals, likely intelligent species on one of the planets. Bob proposes first contact via a roamer but Guppy shoots down the idea since roamers are not ideal for terrestrial exploration. &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c28&lt;br /&gt;
| Calvin – November 2163 – Alpha Centauri&lt;br /&gt;
| Calvin finds the wreckage of the USE probe at Alpha Centauri B. Calvin and Goku fight Medeiros at Alpha Centauri A, destroying all but one of his probes which escapes.&lt;br /&gt;
| Calvin, Goku&lt;br /&gt;
|-&lt;br /&gt;
| p2c29&lt;br /&gt;
| Riker – September 2157 – Sol&lt;br /&gt;
| Riker and Butterworth argue about priorities for rescuing the survivors on Earth. Riker believes that prioritizing logistics for creating the colony ship should not impede a search for survivors. Butterworth argues that all resources should be dedicated towards helping USE survivors at the expense of all other Earth inhabitants. Riker and Homer discover undestroyed stations in the Oort Cloud and outer solar system which may be useful for building colony ships. Riker muses about responsibility for ensuring the survival of humanity in the solar system.&lt;br /&gt;
| Riker, Butterworth, Homer&lt;br /&gt;
|-&lt;br /&gt;
| p2c30&lt;br /&gt;
| Bob – April 2165 – Delta Eridani&lt;br /&gt;
| Bob surveils a tribe of Deltans, “Deltan” is the name that Bob has come up for the fire-using inhabitants he found on Delta Eridani 4. Bob watches in particular a single Delton that he has labeled Archimedes due to Archimedes having constructed knife blade with a handle tied to it. A technology unique apparently to deltas, particularly one Delta Archimedes. Bob watches Archimedes with the help of other box that he has commissioned for the help of surveilling the planet including Luke Bender and others. &lt;br /&gt;
| Bob, Archimedes&lt;br /&gt;
|-&lt;br /&gt;
| p2c31&lt;br /&gt;
| Riker – January 2158 – Sol&lt;br /&gt;
| Riker sees his plan encounter delays for constructing the evacuation ships for survivors of Earth. Arthur, a Bob clone of Riker, has found difficulty contacting surviving enclaves due to ongoing hostility from the war. Homer reports to Arthur that enough supplies exist to construct three colony ships for evacuation.&lt;br /&gt;
| Riker, Arthur&lt;br /&gt;
|-&lt;br /&gt;
| p2c32&lt;br /&gt;
| Bill – October 2158 – Epsilon Eridani&lt;br /&gt;
| In Epsilon Eridani, Bill and Garfield receive word from Milo about the twin habitable worlds Vulcan and Romulus. Bill estimates that it will be about 9 years until word of the habitable worlds can be passed to Earth. Bill feels like a shepherd for humanity. &lt;br /&gt;
| Bill, Garfield&lt;br /&gt;
|-&lt;br /&gt;
| p2c33&lt;br /&gt;
| Riker – March 2158 – Sol&lt;br /&gt;
| Riker performs diplomacy with representatives of the survivors of Earth. Riker mishandles the initial meeting with little empathy for the survivors. Homer talks Riker into by recognizing them as passengers who know their fate is being decided by others and wish to have some level of agency in their fate. Riker holds talks with individual leaders. Riker talks with the Spits, survivors who are in physical possession of the Svalbard Global Seed Vault which they threaten to destroy if their group of roughly 4,000 were not prioritized. &lt;br /&gt;
| Riker, Homer&lt;br /&gt;
|-&lt;br /&gt;
| p2c34&lt;br /&gt;
| Homer – September 2158 – Sol&lt;br /&gt;
| Homer talks to himself about Rikerʼs arrogant tyrannical attitude towards others. Homer is amazed that Riker has still not yet recognized that, he Homer, is attempting to ridicule Riker with his cartoon Homer act. Homer anticipates that Riker will perform poorly regarding the evacuation efforts. Homer sees a way to diplomatically smooth evacuation efforts by bumping up the evacuation of certain groups while not affecting the schedule. Homer decides to discuss this possibility with Colonel Butterworth behind Rikerʼs back.&lt;br /&gt;
| Homer&lt;br /&gt;
|-&lt;br /&gt;
| p2c35&lt;br /&gt;
| Bob – July 2165 – Delta Eridani&lt;br /&gt;
| Bob witnesses Deltans killed by Gorilloids. Bob debates with other Bobs the ethics of assisting the Deltans. Bob surveils Deltans and encourages their technological development by providing one Deltan he has named Archimedes with flint nodules. Archimedes produces weaponry for their fellow Deltans. The Deltans successfully repel the next gorilloid attack.&lt;br /&gt;
| Bob, Marvin, Bender, Luke&lt;br /&gt;
|-&lt;br /&gt;
| p2c36&lt;br /&gt;
| Riker – September 2158 – Sol&lt;br /&gt;
| Riker continues to hold meetings with survivors of Earth. Various factions attempts to lobby with Riker for preferential treatment but Riker shuts them all down hard. Colonel Butterworth proposes in private to Riker the possibility of allowing the group that holds control of the seed vault a position in one of the colony ships at the expense of delaying other colonies shipped in order to secure the the seed vault contents. FAITH attempts to hack Rikerʼs systems with a secret code that, before first Bob disabled their software traps, would have turned Riker into their slave. Riker shuts down talks with FAITH immediately.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c37&lt;br /&gt;
| Bob – August 2165 – Delta Eridani&lt;br /&gt;
| Bob notices a large gorilloid attack on the Deltans. Bob, Marvin, and company decide to deploy a drone to attack the gorilloids in a kinetic strike. Arnold learns to instantly kill gorilloids with an axe Archimedes made. A gorilloid is atomized. Archimedes begins digging up the metal attack drone crash site. Bob decides to guide the Deltans back to their old flint gathering site. Marvin decides to stay long term to guide the Deltans with Bob. Luke and Bender decide to move on to find a star system with their own project.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c38&lt;br /&gt;
| Riker – November 2158 – Sol&lt;br /&gt;
| FAITH holds hostage Bob&#039;s descendants. Riker recognizes the young woman that faith presents to him during a call as resembling Andrea, original Bob&#039;s sister. FAITH allows Riker and the young woman to freely talk while under surveillance.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c39&lt;br /&gt;
| Bob – October 2165 – Delta Eridani&lt;br /&gt;
| Bob bids farewell to Luke and Bender. Luke decides to travel to [[Kappa Ceti]] and Bender to [[Gamma Leporis A]]. Bob talks with Marvin about the ethics of copying themselves in order to favor psychologies that allow cooperation. Bob vows to help the Deltans develop. Archimedes experiments with the metal wreckage. Arnold continues to learn how to use the acts that Archimedes gave him.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c40&lt;br /&gt;
| Linus – April 2165 – Epsilon Indi&lt;br /&gt;
| Linus encounters the Australian probe that has gone insane. Linus extracts the replicant Henry Roberts and builds a realistic VR for them to live. Henry believes their time as a probe was a nightmare.&lt;br /&gt;
| Linus&lt;br /&gt;
|-&lt;br /&gt;
| p2c41&lt;br /&gt;
| Riker – May 2162 – Sol&lt;br /&gt;
| Riker breaks the news of the availability of Vulcan and Romulus to the Earth survivors. Riker threatens to withdraw all support if survivors continue to demand individual planets for themselves.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c42&lt;br /&gt;
| Bill – April 2162 – Epsilon Eridani&lt;br /&gt;
| Bill and Garfield butt heads about TODO list priorities. Bill decides to ease off on first Bob&#039;s declaration that most senior Bob has final say.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c43&lt;br /&gt;
| Riker – September 2164 – Sol&lt;br /&gt;
| Riker inspects the construction of colony ships. Riker thinks about metal scarcity. Homer has been assigned to bootstrap a metal gathering operation with printers. Riker, Homer, and Charles hold an all-Bobs meeting in Earth orbit. The Bobs brainstorm ideas for saving the Earthbound survivors: orbital mirrors to combat global cooling, moving people towards the equator, moon colonies, space stations.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c44&lt;br /&gt;
| Bob – January 2166 – Delta Eridani&lt;br /&gt;
| Bob makes Archimedes his Messiah. Bob orders the Deltans to return to a previous encampment site rich in flint.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c45&lt;br /&gt;
| Bill – January 2165 – Epsilon Eridani&lt;br /&gt;
| Bill receives word back from Bart who built the FTL communication array. Bart tells Bill that the Alpha Centauri systems that Calvin and Goku settled are building Bobs and gathering resources, but that Calvin and Goku have since moved on to explore more star systems. Bart informs Bill that the Brazilian ships that had been defeated by Calvin and Goku were all destroyed except one which got away. Bill is reassured that another Bob factory is in operation since Bill has not created new box in some time. &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| [[Bobiverse/Book 1, full text (2016)/Part 2/Chapter 46|p2c46]]&lt;br /&gt;
| Milo – August 2165 – 82 Eridani&lt;br /&gt;
| Milo explores  82 Eridani, a new star system, and finds two habitable planets. As Milo approaches and enters orbit around one of the habitable planets, he is fired upon by several missiles. Milo transmits a partial differential backup of his mind back to Bill at [[Epsilon Eridani]]. Milo deploys countermeasures and fights with his rail gun but is ultimately overwhelmed.&lt;br /&gt;
| Milo&lt;br /&gt;
|-&lt;br /&gt;
| p2c47&lt;br /&gt;
| Riker – January 2166 – Sol&lt;br /&gt;
| Riker talks with Homer about the evacuation effort. Arthur is killed by a nuclear bomb trap near Saturn.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c48&lt;br /&gt;
| Bob – May 2166 – Delta Eridani&lt;br /&gt;
| Bob governs the migration of the Deltans across a mountain pass. Several stray Delton communities join the main group.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c49&lt;br /&gt;
| Riker – May 2166 – Sol&lt;br /&gt;
| Homer proposes to Riker the idea of agricultural space stations that prioritize creating food in lieu of hosting living humans which have higher requirements to maintain. Riker proposes the agricultural space station idea to the survivors of Earth who generally reject the idea initially. Riker passes the idea through the representatives meeting by noting that the agricultural products of [[kudzu]] will prevent mass death due to starvation among most of the survivors on Earth. Rikerʼs GUPPI notes that a hacking attempt originating from New Zealand was deflected by Bob oneʼs firewall which could have compromised Rikerʼs mind. Riker meets with FAITH representative Cranston; Cranston proposes sharing FAITH food supplies with other nations in exchange for preferential treatment in in colonyship scheduling. Riker discusses the hacking attempt with Cranston; Cranston tells Riker that FAITH replicant technology was stolen via espionage from Australian researchers who pioneered the technology. Cranston believes the hack was performed by people of New Zealand where many Australian survivors fled to. Riker discusses the the idea of agricultural space stations Homer and Charles; The Bobs of Sol agree that Cranston&#039;s proposal is acceptable.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c50&lt;br /&gt;
| Bob – June 2166 – Delta Eridani&lt;br /&gt;
| A very large group of gorilloids attacks the Deltans that just made the trip across the mountains. Overall, the attack was repelled at the cost of many Deltan lives. Bob decides to devote resources towards printing printers and armaments of an explosive nature in order to combat future attacks. Bob, through Archimedes, recommends the settlement of the local area instead of completing the journey to the Flint rich area in order to capitalize upon the fear inflicted upon the gorilloites during the counter-attack. The Deltans accept Bob&#039;s plan.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c51&lt;br /&gt;
| Bill – January 2174 – Epsilon Eridani&lt;br /&gt;
| Bill receives Milo&#039;s final transmissions. Bill orders the creation of a retaliatory fleet.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c52&lt;br /&gt;
| Riker – January 2168 – Sol&lt;br /&gt;
| Homerʼs ranch donut project bears fruit: kudzu crops are successfully supplanting the diet of Earth survivors. Riker is congratulatory to Homer.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c53&lt;br /&gt;
| Bob – June 2166 – Delta Eridani&lt;br /&gt;
| The Deltans suffer an attack by a big cat. Bob begins teaching the Deltons medicine. The Deltons arrive at the flint site.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c54&lt;br /&gt;
| Riker – October 2170 – Sol&lt;br /&gt;
| Riker, Homer, Charles, and Ralph oversee the commissioning of Exodus-1 and Exodus-2.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c55&lt;br /&gt;
| Bob – July 2166 – Delta Eridani&lt;br /&gt;
| Bob discovers that the Deltans migrated away from the flint site due to proliferation in the local region of plants that the gorilloids ate. Deltans filled a protein hole in the gorilloid diet. Marvin shows Bob that the Deltans have begun worshiping “Bawb” by building shrines around wreckage of the buster machines used to automatically defend the Deltan camp perimeter from gorilloids.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c56&lt;br /&gt;
| Bill - March 2167 - Epsilon Eridani&lt;br /&gt;
| Bill iterates on his android project. Latency and sensory processing problems persist.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c57&lt;br /&gt;
| Mario – August 2169 – Beta Hydri&lt;br /&gt;
| Mario arrives at Beta Hydri. Mario discovers the system almost completely devoid of easily-accessible metallic ore. Mario discovers signs of an artificial [[gamma ray burst]] used to instantly sterilize local planets of life. One of Marioʼs roamers opens a box containing small machines that begin disassembling the roamer. Mario discovers the small machines are powered by his own SUDDAR scans. Mario captures one of the small ant-like machines in plastic. Mario decides to fly back to inform the other Bobs of his discovery since he lacks metals to construct an FTL communication station.&lt;br /&gt;
| Mario&lt;br /&gt;
|-&lt;br /&gt;
| p2c58&lt;br /&gt;
| Riker – April 2171 – Sol&lt;br /&gt;
| Riker sees the launch of the first two colony ships depart Sol system with USE colonists, two Riker clones, and Howard, a recent Bob clone.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c59&lt;br /&gt;
| Bill – May 2172 – Epsilon Eridani&lt;br /&gt;
| Bill holds the first Bob-moot in Epsilon Eridani. The colonists are en route to [[40 Eridani|Omicron² Eridani]].&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c60&lt;br /&gt;
| Khan – April 2185 – 82 Eridani&lt;br /&gt;
| Khan leads 7 other Bobs to attack Medeiros in 82 Eridani. Khan is the only survivor. Khan reports back to Bill. Several Bobsʼ differential backups failed to be completely received. Khan vows to return to fight Medeiros in 82 Eridani agian.&lt;br /&gt;
| Khan&lt;br /&gt;
|-&lt;br /&gt;
| p2c61&lt;br /&gt;
| Howard – September 2188 – Omicron² Eridani&lt;br /&gt;
| Howard arrives at Omicron² Eridani with the Earth colonists aboard Exodus-1 and Exodus-2. Colonel Butterworth is awoken and settlement of Vulkan begins in earnest.&lt;br /&gt;
| Howard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b2|Book 2: For We Are Many]]====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 2: &#039;&#039;[[For We Are Many]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| c1&lt;br /&gt;
| Sky God; Bob, February 2167, [[Delta Eridani]]&lt;br /&gt;
| Deltans take down a pigoid. Bob pressures Cruella, a Deltan medicine woman, to use hot water to dress a wound. Marvin tells Bob of a mystery of Deltan migration patterns.&lt;br /&gt;
| Bob, Marvin, Archimedes, Cruella&lt;br /&gt;
|-&lt;br /&gt;
| c2&lt;br /&gt;
| Colony Site; Howard, September 2188, [[Vulcan]]&lt;br /&gt;
| Howard learns of an attack by local birds against excavation equipment. Howard meets with Colonel Butterworth regarding New colony issues. Colonel butcher worth expresses desire for future colonists to pick a different planet besides Vulcan.&lt;br /&gt;
| Howard, Butterworth&lt;br /&gt;
|-&lt;br /&gt;
| c3&lt;br /&gt;
| Life in Camelot; Bob, March 2167, Delta Eridani&lt;br /&gt;
| Bob speaks with Archimedes who is curious about Bob&#039;s nature. &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c4&lt;br /&gt;
| Water Planet; Mulder, October 2170, [[Eta Cassiopeiae]]&lt;br /&gt;
| Mulder explores the system. Mulder finds a water world covered with a sparse scattering of photosynthesizing oxygen producing mats floating on the surface. Mulder finds the ocean is 800 km deep. Mulder creates two Bobs: Skinner and Johnny. Johnny is extremely sarcastic. Johnny wishes to depart quickly for another place.&lt;br /&gt;
| Mulder&lt;br /&gt;
|-&lt;br /&gt;
| c5&lt;br /&gt;
| Progress; Howard, December 2188&lt;br /&gt;
| Howard discusses with butcherworth the progress on securing the perimeter of Landing, the primary settlement on Vulcan. But it reports that local wildlife continues to attack the colonization site but they show no sign of intelligence. Howard has a meeting with Bert and Ernie informing them that they may soon be released to return to Earth. Colonist decanting begins and completes. Howard nodes that the next shipment of colonists the spits going to have to be delayed in order to facilitate or accommodate the securing of Landing. Bert and Ernie note that the spits would likely be departing Earth as scheduled, but they cannot help their detenting date.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c6&lt;br /&gt;
| Contacting Bill; Mulder, April 2171, Poseidon&lt;br /&gt;
| Molar constructs the scut scut in order to communicate with Bill. Mulder is extremely surprised when Bill enters his own VR environment in real time. Bill tells Mulder that habitable planets are still in demand. Mulder decides to work in Earnest to prepare the local system Poseidon specifically into being ready to receive colonists. Mulder notes that colonists for Poseidon will have to initially be space-based due to the lack of land on Poseidon.&lt;br /&gt;
| Mulder&lt;br /&gt;
|-&lt;br /&gt;
| c7&lt;br /&gt;
| Back to Work; Riker, July 2171, [[Sol]]&lt;br /&gt;
| Riker receives reports from Charles about VEHEMENT terrorist attacks that have begun to become more deadly. Charles believes that the attacks are now coming from two groups. Not just VEHEMENT. Riker attends another United Nations meeting and lads the speech of a Maldives representative who insists upon spreading humanity beyond just epsilon eradani and into Poseidon as well in order to further create more redundancy in human civilization.&lt;br /&gt;
| Riker, Charles&lt;br /&gt;
|-&lt;br /&gt;
| c8&lt;br /&gt;
| Farming Satellites; Howard, April 2189, Vulcan&lt;br /&gt;
| Howard oversees the commissioning of farming stations. &#039;&#039;Heaven-3&#039;&#039; arrives. The captain, Sam, meets with Howard, expressing distaste for being a truck driver. Howard enjoys Sam&#039;s cognac. Howard asserts dominance over colonists via their position of power over food production. Howard&#039;s primary argument rests upon their lack of involvement in creating the war that killed most humans on Earth. Howard discuses incompatibility of Vulcan flora and fauna.&lt;br /&gt;
| Howard, Sam, Butterworth&lt;br /&gt;
|-&lt;br /&gt;
| c9&lt;br /&gt;
| Something is Out There; Bob, September 2169, Delta Eridani&lt;br /&gt;
| Bob reviews the status of the Deltans. Marvin tells Bob that there was a predator in the recent past. That&#039;s nearly wiped out the Deltans that was not the gorilloids. Bob decides to postpone armament production in order to produce scouts to scan Eden&#039;s surface in search of the predators that Marvin believes exists.&lt;br /&gt;
| Bob, Marvin&lt;br /&gt;
|-&lt;br /&gt;
| c10&lt;br /&gt;
| Genocide; Mario, November 2176, [[Zeta Tucanae]]&lt;br /&gt;
| Mario discovers more evidence of a genocide in a separate star system that he had fled to after departing Beta Hydri. On a habitable world, Mario discovers the planet to be sterilized and evidence of cities and transport infrastructure laid waste to an effort to recover metal and the bodies of the inhabitants.&lt;br /&gt;
| Mario&lt;br /&gt;
|-&lt;br /&gt;
| c11&lt;br /&gt;
| Mating Dance; Bob, November 2169, Delta Eridani&lt;br /&gt;
| Bob teaches Archimedes principles of [[Jujutsu]] to further his [[eugenics]] project of increasing Deltan intelligence by spreading Archimedesʼ genes in the next generation. Archimedes fancies Diana. Marvin informs Bob that a Deltan has fallen prey to the mystery predator. &lt;br /&gt;
| Bob, Archimedes, Marvin&lt;br /&gt;
|-&lt;br /&gt;
| c12&lt;br /&gt;
| Bob Calling; Bill, May 2171, [[Epsilon Eridani]]&lt;br /&gt;
| Bill receives contact from Bob who just constructed their SCUT device and logged onto BobNet. Bill and Garfield are surprised that Bob made [[First contact (science fiction)|First Contact]] with intelligent life in [[Delta Eridani]]. Bill is surprised at Bob-1&#039;s adeptness with virtual reality programming and decides to copy much of Bob&#039;s work. Bill catches Bob up on the human evacuation of Earth to [[Omicron² Eridani]]. Bill confesses their android project has only yielded a quadruped model so far.&lt;br /&gt;
| Bill, Bob, Garfield&lt;br /&gt;
|-&lt;br /&gt;
| c13&lt;br /&gt;
| Investigating the Others; Mario, May 2180, [[Gliese 54]]&lt;br /&gt;
| Mario finds no sign of the genociders in Gliese 54. Mario creates Bashful, Dopey, Sleepy, and Hungry. They consider plans to gauge the magnitude and direction of the genocider threat. Mario recommends frequent differential backups in case one of them is compromised to prevent secrets being leaked from disassembly.&lt;br /&gt;
| Mario&lt;br /&gt;
|-&lt;br /&gt;
| c14&lt;br /&gt;
| Sabotage; Riker, December 2170, Sol&lt;br /&gt;
| Riker learns of VEHEMENT attacks on cattle. UN representatives condemn the attack. Riker wishes he had some political agenda to push since VEHEMENT has made itself a common enemy and thus generated consensus in the UN. Homer reveals that he has been under-reporting agricultural production so the VEHEMENT attacks only ate into that safety factor.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c15&lt;br /&gt;
| A Visit From Bill; Mario, November 2180, Gliese 54&lt;br /&gt;
| Mario receives blueprints for and builds a SCUT. Bill calls Mario. Mario shares the bad news about the genociders. Bill promises to work on developing weapons.&lt;br /&gt;
| Mario&lt;br /&gt;
|-&lt;br /&gt;
| c16&lt;br /&gt;
| Hunted; Howard, September 2189, Vulcan&lt;br /&gt;
| Howard intervenes with a Buster to save a colonist hunting raptors. Howard talks with Hunter Stéphane. Howard meets with Bob and Bill in a camping VR environment. Bob says he feels anxious when thinking about his flesh relatives. Howard tells Butterworth about the Others that Mario and company is tracking down. Butterworth is angry. Butterworth and Howard lament their lack of free time.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c17&lt;br /&gt;
| We’ve Lost a Drone; Bob, May 2171, Delta Eridani&lt;br /&gt;
| Bob continues to transmit SCUT plans to Luke and Bender&#039;s anticipated position. Marvin and Bob discover more evidence of the unknown predator of Deltans after the predator took down a drone. &lt;br /&gt;
| Bob, Marvin&lt;br /&gt;
|-&lt;br /&gt;
| c18&lt;br /&gt;
| It’s Getting Worse; Riker, Sept 2172, Sol&lt;br /&gt;
| A bombing in a Brazilian favela. Brazilian Minister Benedito asks for help but Riker declines. New Zealand Minister Gerrold accuses Riker of failing to catch the terrorists. Maldives Minister Sharma defends Riker, citing bigotry against replicants. Riker notices Homer is quiet.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c19&lt;br /&gt;
| Prey; Bob, June 2172, Delta Eridani&lt;br /&gt;
| Bob and Marvin deduce the predator is a camouflaging Hippogriff, a horse-sized relative of a smaller predator flyer observed long ago. Bob kills a Hippogriff approaching Camelot with a buster. Many Hippogriffs approach in response. Bob kills them with all available busters. Three Deltans are killed by Hippogriffs. Leader Hoffa accuses Bob of leading the Deltans into the Hippogriff territory. Bob defends his recommendation for the Deltans to relocate to their flint site. Bob kinetically bombards a nearby island densely packed with Hippogriff. The Delta leader Hoffa bans Bob. Bob leaves. Diane is triumphant.&lt;br /&gt;
| Bob, Marvin, Hoffa, Archimedes&lt;br /&gt;
|-&lt;br /&gt;
| c20&lt;br /&gt;
| Parasite; Howard, October 2189, Vulcan&lt;br /&gt;
| Howard and Butterworth watch parasite eggs and larva being removed from a person. Howard watches a conference call between Riker and Julia and her son, Justin. Howard and Butterworth see a captured flying adult version of the parasite.&lt;br /&gt;
| Howard, Butterworth &lt;br /&gt;
|-&lt;br /&gt;
| c21&lt;br /&gt;
| Attacks Continue; Riker, December 2174, Sol&lt;br /&gt;
| A cargo drone is lost carrying food and agricultural equipment to [[Vancouver Island]]. One of Homerʼs farming donuts suffers a VEHEMENT cyberattack, destroying kudzu. Riker decides to study cryptography after being unable to identify the attack vector.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c22&lt;br /&gt;
| Fallout; Bob, December 2173, Delta Eridani&lt;br /&gt;
| Bob meets in secret with Archimedes. Bob teaches Archimedes about archery and crafting bows. Archimedes says Bob is no longer welcome in Camelot due to the decrease in hippogriff attack frequency since Bob left; Bob retorts that, although they have been exiled, Bob has still been eliminating hippogriffs in the vicinity to protect Archimedes. Marvin announces his departure from Delta Eridani. Bob wonders how Luke and Bender are doing, wishing they&#039;d make a SCUT transmission eventually.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c23&lt;br /&gt;
| VEHEMENT; Riker, September 2175, Sol&lt;br /&gt;
| Riker receives notification that another VEHEMENT attack occurred, this time destroying a newly constructed donut-farm that Homer had built. Homer is distraught and sullen. Riker speculates on how VEHEMENT is coordinating actions with this new second faction that seems more capable and has effected complex attacks on the planetary power system. Riker speculates that VEHEMENT is using steganography to communicate because he cannot detect any unusual traffic in the limited planetary communication network.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c24&lt;br /&gt;
| Visiting Marvin; Bob, March 2174, Delta Eridani&lt;br /&gt;
| Bob calls Marvin over SCUT. Bob admires Marvinʼs habitable Moon environment. Bob tells Marvin that he has created Pete and Victor. Victor is willing to try and track down Luke or Bender. However, Pete is fiercely independent and simply wishes to go explore on his own. Bob and Marvin worry about the fates of Luke and Bender.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c25&lt;br /&gt;
| Rabbits; Howard, November 2189, Vulcan&lt;br /&gt;
| Howard receives a call from a biologist named Dr. Sheehy telling him that rabbits have the ability to consume local flora and convert that biomass into meat which the colonists on Vulcan can consume.  Dr. Sheehy also informs Howard that local vegetarian megafauna that have been eating fence material have begun to be hunted by colonists for their meat.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c26&lt;br /&gt;
| Selling Poseidon; Riker, December 2175, Sol&lt;br /&gt;
| Ambassador Gerrold accuses Riker of failing to stop VEHEMENT attacks. Riker bluffs, saying he already has thwarted most of its attacks. Riker orders Guppy to monitor communication channels for reactions to his private meeting with Gerrold.   Riker attends a meeting debating which colonists will be sent to Poseidon.  Guppy informs Riker that a drone happened to catch a tight-beam message from New Zealand to Homer&#039;s Heaven vessel. Riker concludes Homer&#039;s mind has been compromised.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c27&lt;br /&gt;
| Luke Returns; Bob, March 2178, Delta Eridani&lt;br /&gt;
| Luke calls Bob from Kappa Ceti via SCUT. Bob shows Luke his real-time VR of Deltan villages.  Luke tells Bob that he has no idea what happened to Bender.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c28&lt;br /&gt;
| Et Tu, Homer; Riker, December 2175, Sol&lt;br /&gt;
| Riker meets with Charles via direct laser communication to discuss the issue of Homer being infected with a mind control virus. They agree to set a trap for Homer.  Riker calls a meeting with Homer, saying he has identified a VEHEMENT plan.  Riker sets up a sandbox Bob and asks Charles to take aim at Homer&#039;s reactor core.  Homer disables Riker&#039;s sandbox Bob. Charles shoots Homer&#039;s reactor core, shutting down Homer&#039;s power. A digital autopsy reveals a security vulnerability via laser communications. Charles asks Riker to audit his, Charles’, software; Riker shuts down, inspects, and declares clean Charles.  Riker and Charles confront Ralph and force him to undergo shutdown and undergo a software audit; Ralph submits. Riker rebuilds Homer as best as he can.  Homer awakens but is extremely traumatized at being puppetted into killing people and being unable to even end himself.  Bill offers weapons development help to kill those responsible.  Riker identifies and confirms that a New Zealand military communications site as the source of the infecting signal.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c29&lt;br /&gt;
| Emergency; Howard, April 2190, Vulcan&lt;br /&gt;
| Howard tracks raptors that broke into Landing.  No colonists were killed but the raptors displayed advanced battlefield tactics that only were thwarted by Howard&#039;s framejack ability to effectively integrate many drone sensor streams simultaneously.  Dr. Sheehy develops a passive body odor detection method for parasites and names the species “Cupid Bugs” for their tendency for larva to attack human hearts. &lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c30&lt;br /&gt;
| Found Something; Bashful, November 2187, [[Gliese 877]]&lt;br /&gt;
| Bashful explores [[Gliese 877]].  They find technological radio signals.  Bashful sends some stealth probes that they designed into the system to collect data through passive scans.  Bashful maneuvers their ship to stay far away from the star system and intercept the drifting probes.  Bashful intercepts the probes, downloads their contents, forwards them back to Mario for analysis, and begins their own analysis.  While analyzing in deep space, Bashful is surprised by a proximity alert.  After a brief attempt at escaping six pursuing vessels, a large one resembling a Death Star aims and fires its primary weapon.  Due to Bashful shutting down and multiple system failures, GUPPI self-destructs Bashful via reactor overload.&lt;br /&gt;
| Bashful&lt;br /&gt;
|-&lt;br /&gt;
| c31&lt;br /&gt;
| Taking Care of Business; Howard, January 2191, Vulcan&lt;br /&gt;
| Howard meets with Bridget to test alcohol to beverages that he has been producing. Howard meets with Bridget and Stéphane for a casual round of drinks. Stéphane compliments Howard and Bridget on the rabbits project, noting that he has sampled rabbits too several times and enjoys it. Bridget tells Howard about a joke involving [[Toast (honor)|toasting]] rituals for alcoholic drink and Irish ridicule of the British.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c32&lt;br /&gt;
| Linus; Bill, May 2178, Epsilon Eridani&lt;br /&gt;
| Linus meets with Bill bringing Henry to meet. They discuss VR matters. Linus and Henry are to get to their own new ships.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c33&lt;br /&gt;
| Trouble in Paradise; Bob, January 2180, Delta Eridani&lt;br /&gt;
| Bobby Marvin monitor and discuss the Deltans. Deltan society has progressed to the point of high population and intersectional conflict with multiple murders having occurred.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c34&lt;br /&gt;
| Moose; Bill, June 2185, Epsilon Eridani&lt;br /&gt;
| Bill rides across Ragnarök in his quadruped moose therioid named Bullwinkle on Ragnarök.  Bill meets with ten new Bobs created to occupy [[82 Eridani]].  One is a copy of Khan named Loki. An Elmer backup is one of the Bobs created.  The new Bobs depart for 82 Eridani.  Bill introduces to the Bobs the Australian replicant Henry that Linus found at [[Epsilon Indi]].&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c35&lt;br /&gt;
| Sales Call; Howard, September 2192, Vulcan&lt;br /&gt;
| Howard and Bridget present [[Irish Whiskey]] to Butterworth who approves. Howard and Bridget begin dating.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c36&lt;br /&gt;
| Asteroid Movers; Bill, March 2187, Epsilon Eridani&lt;br /&gt;
| &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c37&lt;br /&gt;
| He’s Gone; Riker, August 2176, Sol&lt;br /&gt;
| &lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c38&lt;br /&gt;
| Following up; Hal, May 2188, Gliese 877&lt;br /&gt;
| &lt;br /&gt;
| Hal&lt;br /&gt;
|-&lt;br /&gt;
| c39&lt;br /&gt;
| Bob-Moot; Bill, August 2188, Epsilon Eridani, February 2178, Vulcan&lt;br /&gt;
| &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c41&lt;br /&gt;
| Casualties; Bob, July 2182, Delta Eridani&lt;br /&gt;
| &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c42&lt;br /&gt;
| Business; Howard, March 2193, Vulcan&lt;br /&gt;
| &lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c43&lt;br /&gt;
| An Exchange of Words; Riker, March 2178, Sol&lt;br /&gt;
| &lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c44&lt;br /&gt;
| Baseball; Bill, March 2189, Epsilon Eridani&lt;br /&gt;
| Garfield presents to Bill a flying android: Rocky. Garfield flies in Rocky&#039;s body, but crashes.&lt;br /&gt;
| Bill, Garfield,&lt;br /&gt;
|-&lt;br /&gt;
| c45&lt;br /&gt;
| Replication; Howard, August 2193, Vulcan&lt;br /&gt;
| Howard talks to Riker and fields the idea of scanning a living person in order to convert them into a replicant. Riker is suspicious but agrees to look into the matter. Howard, in private, re-examines a medical image involving Bridget Sheehy. Later Howard confronts Cranston regarding bootleg alcohol being smuggled into New Jerusalem. Howard begins talks to regulate trade between lending and New Jerusalem. Privately, Riker tells Howard that he wants to eliminate Cranston.&lt;br /&gt;
| Howard, Riker&lt;br /&gt;
|-&lt;br /&gt;
| c46&lt;br /&gt;
| Klown Kar Planet; Rudy, February 2190, [[Epsilon Indi]]&lt;br /&gt;
| Rudy arrives at Klown Kar Planet (KKP) a few weeks before Edwin. Rudy briefs Edwin on the extremely varied and competitive biodiversity of KKP.&lt;br /&gt;
| Rudy, Edwin&lt;br /&gt;
|-&lt;br /&gt;
| c47&lt;br /&gt;
| New Village; Bob, September, 2182, Delta Eridani&lt;br /&gt;
| Deltan adolescents part the main encampment to resettle an abandoned one. Bob and senior Deltans celebrate their successful reverse psychology ploy of getting the overcrowded Deltan population to disperse somewhat. Marvin warns that the competing Deltans will likely eventually use violence to compete for resources.&lt;br /&gt;
| Bob, Marvin&lt;br /&gt;
|-&lt;br /&gt;
| c48&lt;br /&gt;
| Operation; Howard, September 2193, Vulcan&lt;br /&gt;
| Howard waits for Bridget to come out of surgery to remove cancerous tumors. Stéphane notifies Howard that Bridget has exited surgery explaining that the tumors were more widespread than previously were found but that the doctors had a positive outlook. Anyway. Howard is present when Bridget wakes up. And almost makes a joke but is interrupted when Stéphane enters the room. And Howard feels like a third wheel Howard excuses himself from Bridget and Stéphane&#039;s conversation noticing that they are more than a close friends and Howard feels jealous. Howard reflects that his love for Bridget is not possible to act upon due to the fact that Howard is a replicant and Bridget is a flesh and blood human.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c49&lt;br /&gt;
| Arrival; Mulder, March 2195, Poseidon (Eta Cassiopeiae)&lt;br /&gt;
| Loki and other Bobs battle Medeiros in 82 Eridani. After a battle between stealth ships, they deduce a weakness in Medeiros&#039;s communication system that relies heavily upon AMIs for locally executing tactics. The Bobs exploiti this reliance upon AMIs and Medeiros&#039;s command ships to reveal their position. The Bobs wipeout installations in 82 Eridani. Loki and others deduce that many other Medeiros are unaccounted for and that there were actually three, not two Medeiros probes that originally launched.&lt;br /&gt;
| Mulder&lt;br /&gt;
|-&lt;br /&gt;
| c50&lt;br /&gt;
| Second Expedition; Loki, November 2195&lt;br /&gt;
| &lt;br /&gt;
| Loki&lt;br /&gt;
|-&lt;br /&gt;
| c51&lt;br /&gt;
| Wedding; Howard, April 2195, Vulcan&lt;br /&gt;
| Howard donates his stake in the Irish Whiskey business to Stéphane and Bridget as a wedding gift. In reality, Howard is disappointed that Bridget chose to partner with Stéfane. In order to get over Bridget, Howard decides to leave Vulcan entirely and go exploring. Howard, Bridget and Stéphane part ways amicably.&lt;br /&gt;
| Howard, Bridget, Stéphane&lt;br /&gt;
|-&lt;br /&gt;
| c52&lt;br /&gt;
| Bullwinkle; Bill, December 2195, Epsilon Eridani&lt;br /&gt;
| Bill is testing out Bullwinkle on Ragnarok when Garfield calls and tells him that the 82 Eridani expedition has reported back good news. Garfield tells Bill that Loki is successfully reverse engineering the cloaking technology that Medeiros wielded in battle. Marvin and Luke propose to Bill a long-term project to find Bender, their cohort-mate, in order to find out what happened to him.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c53&lt;br /&gt;
| Testing; Hal, April 2196, GL 877&lt;br /&gt;
| Hal sends an AMI-driven Heaven ship decoy into known Others territory to test Zapper shielding. Others appear and follow the decoy. Mario joins Hal in watching the pursuit. The decoy is zapped but survives, sending a scan of the internals of the Others ships. Hal and Mario see large communal living areas within the Others ships. Hal departs to GL 54.&lt;br /&gt;
| Hal&lt;br /&gt;
|-&lt;br /&gt;
| c54&lt;br /&gt;
| Stuff is Happening; Hal, October 2197, En Route to GL 54&lt;br /&gt;
| Bill tells Hal that Others are headed from GL 877 to GL 54.&lt;br /&gt;
| Hal&lt;br /&gt;
|-&lt;br /&gt;
| c55&lt;br /&gt;
| Contact; Bill, October 2204, GL 54&lt;br /&gt;
| Bill talks to Others via a decoy vessel in GL 54. The Others communicate to Bill using the [[chinese language]] that they say they learned from a probe they captured. Bill asks why the Others genocide planetary inhabitants such as those of [[Zeta Tucanae]]. The Others call him and all life besides themselves “food”. The Others reveals their knowledge of [[Sol]] and [[Epsilon Eridani]] and their plants to harvest food there. Bill&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c56&lt;br /&gt;
| Descendants; Bob, January 2183, Delta Eridani&lt;br /&gt;
| Bob passively observes Archimedes and his family over time. The Deltans treat their memory of Bawbe as that of a malicious deity.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c57&lt;br /&gt;
| Moot; Bill, October 2204, Epsilon Eridani&lt;br /&gt;
| Bill presents scans of the Others ships to Bobs at a moot. Other Zapper and remote subspace power beaming technology is discussed. Other biology and their packed living conditions are presented. &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c58&lt;br /&gt;
| News; Howard, July 2198, Interstellar Space&lt;br /&gt;
| Howard receives an update on Bridget and Stéphane. Howard learns that Cranston has has been forced from power and New Jerusalem is now a democracy. Howard learns that Bridget and Stéphane had a son. The son&#039;s name is Howard. Howard is conflicted and regretful.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c59&lt;br /&gt;
| Another One; Bill, April 2205, Epsilon Eridani&lt;br /&gt;
| Bill sees from surveillance drones that Others are mounting an expedition to [[NN 4285]]. Bill talks to Mario who says Claude is headed to [[Gamma Pavonis]] and Jacques to Delta Pavonis]], two star systems near NN 4285. Bill contacts Claude to ask him to prepare for war; Claude is hesitant, not wanting the responsibility. Bill searches for manufacturing centers and decides to use [[Alpha Centauri]] which is uninhabited; Bart had left it with only an AMI long ago. Bill tells Garfield he intends to print himself a replicant matrix in Alpha Centauri and load a backup of himself there to begin the war effort against the Others.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c60&lt;br /&gt;
| Arrival; Claude, May 2205, [[Gamma Pavonis]]&lt;br /&gt;
| Claude arrives in Gamma Pavonis. The system has an ideally habitable world with no obvious intelligent life. Claude informs Bill who says Others consume a star system once roughly every decade or two. Bill says reinforcements from Jacques will arrive around the same time the Others do.&lt;br /&gt;
| Claude&lt;br /&gt;
|-&lt;br /&gt;
| c61&lt;br /&gt;
| Starting Over; Oliver, September 2205, [[Alpha Centauri]]&lt;br /&gt;
| Bill&#039;s backup wakes up in Alpha Centauri and names himself Oliver after another &#039;&#039;[[Bloom County]]&#039;&#039; character. Oliver decides to research relativistic velocity weapons. Oliver scales up production first with printers then Bobs and battle cruisers. Oliver mentions Butterworth provided [[H-bomb]] blueprints.&lt;br /&gt;
| Oliver&lt;br /&gt;
|-&lt;br /&gt;
| c62&lt;br /&gt;
| Departure; Mulder, November 2201, Departure&lt;br /&gt;
| Mulder prepares to depart Poseidon leaving command of the system in charge of Marcus. Monty prepares to pilot a ship back to Sol system. Marcus shows Mulder a prototype floating city design that should be in operation by the time Mulder returns to solar system. Riker and Mulder have a call. Riker tells Mulder that several colonists ventures at Vulcan, Poseidon, Epsilon Indi, and 82 Eridani are underway. The Others threaten Epsilon Indi and 82 Eridani.&lt;br /&gt;
| Mulder&lt;br /&gt;
|-&lt;br /&gt;
| c63&lt;br /&gt;
| The Pav; Jacques, February 2207, [[Delta Pavonis]]&lt;br /&gt;
| Jacques arrives at Delta pavonis and finds an industrial era civilization on one of the planets. Jacques and Bill are both somewhat sad that the Others are likely to destroy this civilization. Bill exhorts Jaques to build dreadnaughts of Oliver&#039;s design from local solar system resources in Delta Pavonis in order to prepare to defend the system or to provide backup to Claude. Jaques provisionally calls the intelligent life of Delta Pavonis the Pav. Jaques deploys drones to infiltrate Pav cities and begins reading Pav books as well as listening to Pav orators read from books. Jacques observes that the Pavs physically resemble meerkats and have family units composed many adults with genders roughly evenly split.&lt;br /&gt;
| Jacques&lt;br /&gt;
|-&lt;br /&gt;
| c64&lt;br /&gt;
| Moot; Bill, March 2207, Epsilon Eridani&lt;br /&gt;
| Bill holds a moot to discuss Other movements. Others have kicked out Mario from GL 54. The Others are moving towards [[NM 4285]]. Bill informs the moot of the habitable planet in Gamma Pavonis and intelligent life in Delta Pavonis. Strategic weapons are discussed: cloaking, relativistic ramming, SCUT-based suicide bombers. Bill listens to Jacques present his observations of the Pavs. Bill regrets that the Bobs are so disorganized.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c65&lt;br /&gt;
| Grandpa; Bob, January 2195, Delta Eridani&lt;br /&gt;
| Bob watches Archimedes spend time with his grandchildren. Bob regrets being exiled. Bob wishes Bill would accelerate android research but knows Bill is occupied with other major projects such as terraforming Ragnarök.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c66&lt;br /&gt;
| It’s Happening; Bill, January 2208, Epsilon Eridani&lt;br /&gt;
| Bill discovers the Others have deployed a convoy to Delta Pavonis. Bill immediately warns Jacques and Claude. Oliver and Claude agree to send reïnforcement warships. Bill holds a somber moot. The idea of moving the Pav planet is proposed and shot down. Garfield tells Bill that the Others have get to face significant resistance and so the Others may have a weakness in their overconfidence.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c67&lt;br /&gt;
| Bad News; Howard, December 2210, [[HIP 14101]]&lt;br /&gt;
| Howard receives notification that Bridget&#039;s husband, Stéphane, had contracted a fatal illness and is soon to die. Howard calls Bridget who tells him the illness progressed quickly and Stéphane is now beyond speaking to. Howard receives one of Bill&#039;s humanoid androids to wear for Stéphane&#039;s funeral.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c68&lt;br /&gt;
| Recording; Jacques, September 2212, Delta Pavonis&lt;br /&gt;
| Howard collects biological samples and records extensive sensor data on the Pav planet. Howard focuses his attention on two communities called Mheijrkva and Aizzilkva. Howard focuses on a single Pav family called the Los family in Mheijrkva. Howard focuses further on the family&#039;s matriarch and town councilwoman Da Hazjiar Los.&lt;br /&gt;
| Jacques&lt;br /&gt;
|-&lt;br /&gt;
| c69&lt;br /&gt;
| Wake; Howard, January 2211, Vulcan&lt;br /&gt;
| Howard attends Stéphaneʼs funeral wake piloting Manny, the prototype android Bill created. Howard meets Bridgetʼs children: Rosie, Lianne, and Howie. Howard reports back to Bill and original Bob on Mannyʼs performance; Howard compares VR to embodying an android to trying to tickle yourself versus being tickled by someone else. Bill convinces Bob to help with the Android Project development.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c70&lt;br /&gt;
| Conversation; Howard, May 2211, HIP 14101&lt;br /&gt;
| Howard discusses with Bridget the possibility of her becoming a replicant. Bridget declines. Howard asks if Butterworth would like to be replicated for the war effort and he agrees.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c71&lt;br /&gt;
| Charlie; Bob, June 2213, Delta Eridani&lt;br /&gt;
| Bob tests out his Deltan android Charlie with Archimedes. Bob&#039;s first test was visually almost passable but olfactorily repugnant. Bob&#039;s second test is much more pleasing to Archimedes and Bob decides to accompany Archimedes to meet his family under a name he translates for himself as “Robert”.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c72&lt;br /&gt;
| Battle; Bill, February 2217, Delta Pavonis&lt;br /&gt;
| The Bobs fight the Others to defend Delta Pavonis. The Boba deploy cloaking tech, fusion bombs, Zapper resistance, and Butterworth tactics. Jacques is killed in action. The Bobs fail to eliminate the Other fleet.  Andrew informs Bill that Jacques left some Pav abduction plans to preserve their species.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c73&lt;br /&gt;
| Collection; Phineas, February 2217, Delta Pavonis&lt;br /&gt;
| Phineas and Ferb abduct Pavs from Mheijr, another settlement, and some military bases. They capture roughly 20 000 Pavs with sleeping gas and successfully put them into cryo sleep.&lt;br /&gt;
| Phineas&lt;br /&gt;
|-&lt;br /&gt;
| c74&lt;br /&gt;
| Observing the Process; Bill, May 2217, Delta Pavonis&lt;br /&gt;
| Bill holds a somber moot about the failed defense of Delta Pavonis. Bill witnesses the slaughter of billions of Pavs. Bill has an idea while morosely observing the lake he accidentally created on Ragnarök.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c75&lt;br /&gt;
| Reunion; Howard, January 2216, HIP 14101&lt;br /&gt;
| Howard meets Bridget in-person via Manny.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c76&lt;br /&gt;
| Funeral; Bob, November 2220, Delta Eridani&lt;br /&gt;
| Bob attends the funeral of Diane, wife of Archimedes. Bob contemplates the mortality of Archimedes.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c77&lt;br /&gt;
| Bill and Jacques awaken eight Pavs to ask them whether to try and recolonize [[Aszjan]] (their home planet a.k.a. DP-4) or to accept the Bobs’ recommendation to colonize a new planet. Bill presents images of the planet the Bobs are recommending. Their spokesperson, Hazjiar, says they wish to accept the new planet. Bill puts the Pavs back into stasis. Bill tells Andrew that he is developing a long-term final solution to the Others.&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b3|Book 3: All These Worlds]]====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ &#039;&#039;[[All These Worlds]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Ch&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| [[/b3/c0|c0]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[/b3/c1|c1]]&lt;br /&gt;
| &lt;br /&gt;
| Bob in the Android Charlie accompanies Donald and some other Deltans on a hunt for pigoid. Fred, a Deltan from the rival settlement Caerleon, demands tribute from their hunting catch. Bob confronts Fred and bests him in a battle of words and physical battle.  Donald asks Camelot politician Jeffrey to address the rising hunting attacks. Bob asks Donald to gather some people to take action.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c2&lt;br /&gt;
| &lt;br /&gt;
| Howard grieves the loss of the Pav civilization with Bridget.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c3&lt;br /&gt;
|&lt;br /&gt;
| Marcus discusses with Kal and Gina the issue of Poseidon being ruled by an increasingly tyrannical government of Poseidon administrative council. Democratic elections have been perpetually postponed. Marcus, still a spaceship in orbit, decides to perform espionage against the council. Marcus contacts Howard.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c4&lt;br /&gt;
| &lt;br /&gt;
| Howard visits a mall with Bridget. A teenager who points out their apparent age difference offends Howard. Bridget says her daughter Rosie fiercely disapproves of Howard dating Bridget. Howard offers to cut all contact with Bridget. Bridget reässerts her desire to maintain an intimate relationship with Howard.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c5&lt;br /&gt;
| &lt;br /&gt;
| Bob lures Fred into a trap. Bob threatens Fred and his cronies with violence if they don&#039;t stop attacking Camelot hunting parties.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c6&lt;br /&gt;
| &lt;br /&gt;
| Bill oversees the departure of his clones, Daedalus and Icarus, who govern the mover-plate-powered launch of former planet Epsilon Eridank 1 as well as a former moon of Epsilon Eridani 3 respectively. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c7&lt;br /&gt;
|&lt;br /&gt;
| Howard receives word that Butterworth declined his offer to be replicated and has died via assisted suicide due to dementia. Howard talks with Bridget about her mortality.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| c8&lt;br /&gt;
| &lt;br /&gt;
| Marcus, Kell and Gina discuss how to peacefully protest the tyranny of the Poseidon council and their refusal to hold elections. Marcus meets with the council and they shoot down his idea of allowing floating cities to ameliorate the population crowding issues on the mats of Poseidon. Marcus visits Kal and discovers surveillance bugs in his residence. Kal reports the Council is attempting to isolate known dissidents such as himself. Marcus equips Kal with encrypted SCUT communication devices. Marcus decides to support a revolution.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| c9&lt;br /&gt;
| &lt;br /&gt;
| Bridget confronts Howard at the mall. Howard and Bridget talk about their relationship. Howard reviews Vulcan social media posts criticizing his existence as a replicant and relationship with Bridget.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c10&lt;br /&gt;
|&lt;br /&gt;
| Bob is hunting alone when Fred and four cronies attempt to attack him in secret. Bob evades Fred. Donald encourages Bob to murder Jeff.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c11&lt;br /&gt;
|&lt;br /&gt;
| Mario calls Bill to tell him that they have found five additional civilizations that have been destroyed by the others. Mario recommends that the Others be exterminated completely. Bill advises Mario to talk with Claude who is in an attack force headed to Gamma Pavonis.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c12 &lt;br /&gt;
| &lt;br /&gt;
| Riker receives a call from Justin to learn that Julia is hospitalized. Julia suffered a brain aneurysm. Riker pilots Manny to attend Julia&#039;s funeral. Justin tells riker that no living human which is to become a replicant.&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| c13&lt;br /&gt;
| &lt;br /&gt;
| Marcus presents the first prototype of a flying city to Cal. Gina and company. Gina warns Marcus that the council will likely want to kill Marcus for threatening their control over the colonist labor force living on Poseidon&#039;s mats.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c14&lt;br /&gt;
| &lt;br /&gt;
| Howard attends a dinner with Bridget and some of her friends: Kumar and Reeda, Arnie and Sylvie. Howardʼs non-biological nature is the subject of conversation.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| c15&lt;br /&gt;
|&lt;br /&gt;
| Riker receives Charlesʼs report of poor metal availability for constructing ships in Sol system. Riker asks Representative Misra about canceling ship production and printing stasis pods instead for the 14 million Earth inhabitants. Misra rejects the idea. Minister MacIntyre of New Zealand strongly rejects Rikerʼs proposal, distrusting Riker entirely.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c16&lt;br /&gt;
|&lt;br /&gt;
| Marcus loads colonists onto four floating cities against the will of the Poseidon Council. Riker calls Marcus in response to Council protests. Marcus advocates for the colonists of Poseidon saying that the council is acting in a totalitarianism fashion. Riker offers no advice and asks Riker to not use violence.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c17&lt;br /&gt;
|&lt;br /&gt;
| Icarus and Daedalus. Talk cryptically about hightao for their mission. They discuss the possibility of traveling to the galactic center.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c18&lt;br /&gt;
| &lt;br /&gt;
| Mack and the other bobs, Issac, Jack, and Owen, arrive at [[82 Eridani]] with colonists. The Bobs name the two habitable planets according to a [[Norse mythology]] theme: planet 2 is Jotunheim and planet 3 is Asgard. They name the moon of planet 3 Valhalla. Mack debriefs Japan enclave leader Katsu Ito and Vancouver Island enclave leader Christie Campbell. They decide Christie&#039;s colonists will take Asgard and Katsu&#039;s colonists will take Jotunheim; Katsu renames the planet Takama-ga-hara. Jack relays colonist complaints to Mack: Takama stinks while Asgard has too high a gravity and mosquitos. Mack prints Cupid bug killers for the mosquitos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c19&lt;br /&gt;
|&lt;br /&gt;
| On the floating city of Amhor, Vinnie tells Marcus, Kal, Frieda, and Denu that the Poseidon Council has declared them and other floating city inhabitants deserters, shutting down communications and free passage. Marcus finds all Lagrange point supplies and autofactories have been captured. Marcus detects his decoy self in space has been destroyed.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c20&lt;br /&gt;
|&lt;br /&gt;
| Howard discoveres floating life on a jovian. Howard shows Bridget via a VR interface. Bridget protests her youthful avatar and Howard pressuring her to submit to replication.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c21&lt;br /&gt;
|&lt;br /&gt;
| Bill visits Mack in 82 Eridani. Mack summarizes progress against the Asgard mosquitos. No solution exists for the stink of Takama. Mack suddenly goes offline due to an attack. Bill connects to roamer SCUT and finds Mack&#039;s hull several damaged and Mack&#039;s matrix shut down. Bill sees a Medeiros ship. Bill summons all available Bobs to framejack to maximum and manually pilot all remaining roamers on Mack&#039;s ship. The Bobs repel Medeiros boarding roamers long enough to allow destruction of most SCUT devices and sensitive data storage devices save those required to remotely manage the battle and secure escape of Mack&#039;s physical matrix. The Bobs attack Medeiros&#039;s vessel and force it to retreat and fire a missile destroy the roamers and Mack&#039;s ship. Bill holds an emergency moot. The nearest Bob is Hank at P Eridani at 11 light years away. The Medeiros is from Alpha Centauri and likely has limited manufacturing capability; their likely objective was to steal Mack&#039;s auto factories meant to support the 82 Eridani colonists.  The only remaining SCUT communication nodes are four drones. Bill orders all system printers to be detached and physically launched towards the colonist settlements.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| c22&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil explore the derelict of an other cargo vessel in Delta pavonis. They find find a power core that is not fusion-based. They decide to attempt to salvage and reverse engineer the new technology.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c23&lt;br /&gt;
|&lt;br /&gt;
| Howard receives news that Bridget has died. Dr. Onagi tells Howard that Bridget had arranged for her body to be put into stasis upon her death. Howard learns that Bridget changed her mind about replication in the last few months of her life and made legal arrangements to give Howard permission to replicate her even against the wishes of her own children. Howard prepares for a protracted legal battle for the replication of Bridget.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c24&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil disassemble an Other drone docked within Hulk-1. They deduce the drone is not autonomous and effectively inert.  They guess Hulk-1&#039;s controlling intelligence is dead. They map power systems of Hulk-1. They decide to power up Hulk-1.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c25&lt;br /&gt;
|&lt;br /&gt;
| Bill informs the Asgard and Takama colonists of the disabling of Mack and the Medeiros threat. The Medeiros approaches a Lagrange point auto factory the Bobs scuttled of all usefulness except the raw metal ingots. Medeiros destroys printers en route to Asgard. The Bobs destroy a pair of Medeiros busters with two thousand baseball-sized Asgard mosquito killers in order to secure safe passage of printers to Asgard.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c26&lt;br /&gt;
|&lt;br /&gt;
| Marcus observes the conflict from [[Eta Cassiopeia B]]. The Poseidon Council attacks the two floating cities housing resistance leaders. Marcus fires undocumented particle canons at missiles fired from Council orbital war ships. Marcus is able to save Amhor.  Floating city Thark is shot down. Marcus refuses to fire upon Council assets until Council command is identified. Marcus believes Council leadership commands from submarines. 150 missing residents of Thark are reported.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c27&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil power up the Hulk one systems. Hulk 1 power is online and no lfx are observed. Herschel and Neil contact Bill to tell them they&#039;re fine. They tell Bill that Hulk 1 could be retrofitted into the largest human evacuation ship to date to evacuate all remaining refugees from Earth.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c28&lt;br /&gt;
|&lt;br /&gt;
| Bob stocks Fred in carillion. Fred accuses Robert of having it easy. Bob demands to know why Fred keeps attacking Camelot people. Fred dares Bob to kill him. Bob makes a distraction and withdraws taking Fred&#039;s spear with him. Later. Bob in Archimedes talk. Archimedes notes that Bob Speer weapon is very poorly made and suspects that Caerleon Hunters have all poorly made equipment. Bob speculates that carillion&#039;s population entirely. Lex skillful flint nappers, which explains Caroline on people stealing catches from Camelot Hunters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c29&lt;br /&gt;
|&lt;br /&gt;
| Howard cools down after leaving the courthouse and having to engage his endocrine control systems.  Dr. Onagi warns Howard that Bridget&#039;s oldest daughter may attempt to sabotage her mother&#039;s stasis thereby preventing her mother from being scanned. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c30&lt;br /&gt;
|&lt;br /&gt;
| Bill and the [[82 Eridani]] colonist leaders find Medeiros preparing kinetic bombardment weapons from busters and metal ingots at Lagrange autofactory remains. Bill launches busters to attack the asteroids being moved and their accompanying busters. The resulting battle eliminates all of medeiros&#039;s busters as well as all of Bill&#039;s busters. A surprise follow-up attack with the small mosquito Killers disables Medeiros&#039;s ship. Bill sends drones with roamers in an attempt to extract the replicant matrix of Medeiros but Medeiros suicides. Mack is rebooted. Mack and Bill plan future defences for colonies.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c31&lt;br /&gt;
|&lt;br /&gt;
| Marcus continues the assault on council forces. Council forces continue to attack floating cities. Marcus and his revolutionaries attack a council stronghold on an industrial mat. Marcus in his revolutionaries capture councilman Brennan. Marcus begins printing replacement security forces.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c32&lt;br /&gt;
|&lt;br /&gt;
| Bill reverse engineers the power generators for the Hulk 1. Bill notes other power generation technologies five times more efficient than human fusion technology. Bill discusses the possibility of evacuating me all of the Earth refugees in a single trip.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c33&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil presents their findings two other bobs at a moot about the Hulk 1 power core technology. Herechel and Neil secretly oversell the reliability of Other power core technology. They explain the Hulk-1 salvage operation to transport them towards Earth.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c34&lt;br /&gt;
| Kidnapping; Bob; September 2224; Delta Eridani (Eden)&lt;br /&gt;
| Caerleon Deltans kidnap Archimedes. Robert leads a party to rescue Archimedes. Robert Buster, Donald and other Delta Hunters from Camelot confront. Jeff and the other belgians. Buster immediately executes Jeff with an arrow at distance. Battle. Ensues and Robert scrambles to rescue Archimedes and is successful. The b10 and unconscious Archimedes is brought back to Camelot for recovery. Archimedes recovers. Robert and Donald&#039;s discuss because for the attack which was the fact that they decide to invite caroleon individuals to learn napping so that care Leon can gain their own ability to produce weaponry for that too.&lt;br /&gt;
| Bob, Fred, Buster, Archimedes&lt;br /&gt;
|-&lt;br /&gt;
| c35&lt;br /&gt;
| Cities Victorious; Marcus; October 2215; Poseidon&lt;br /&gt;
| Marcus and the revolutionaries prepare to try the council members that attacked the floating cities and killed 150 colonists. Marcus and company decide not to punish councilman Brennan anymore than they have to. They decide that working hard labor at a fish factory is sufficient. Marcus looks forward to being able to give up his current dictator pro tem position as soon as possible via elections.&lt;br /&gt;
| Marcus (POV), Kal, Denu, Gina, Vinnie&lt;br /&gt;
|-&lt;br /&gt;
| c36&lt;br /&gt;
| Announcement; Riker; October 2227; Sol&lt;br /&gt;
| Riker presents news of the Hulk 1. Salvage project human export from Earth to the United Nations. Rocker explains that the optimal path for evacuating Earth is to halt production of quality ships and instead to devotable resources to printing stasis pods and shuttles to get live humans from Earth up into orbit and into the balera font. The Hulk one ship as soon as possible.&lt;br /&gt;
| Riker (POV), Misra, Hubert&lt;br /&gt;
|-&lt;br /&gt;
| c37&lt;br /&gt;
| Court Battle; Howard; September 2220; Omicron² Eridani&lt;br /&gt;
| Howard wins the court case against Rosie. The judge decides in favor of Bridget being scanned. Howard notices a confident expression on Rosie&#039;s face and asks Bill to look into the stasis pod of Bridget. After the court is adjourned. Rosie gloats to Howard. She will not let her mother Bridget fall into Howard&#039;s hands. Howard that informs Rosie that Bill sent a drone in to scan Bridget. Bill found a remotely triggered device that shut down Bridget&#039;s stasis pod at the exact time that Rosie appeared to send a text while in the courtroom. Howard then says that he will endear the punishment for defying a court order for prematurely scanning Bridget while Rosie will have to endure punishment for actively sabotaging hospital equipment.&lt;br /&gt;
| Howard (POV), Benning, Bill, Gus Kistler, Rosie, Katz&lt;br /&gt;
|-&lt;br /&gt;
| c38&lt;br /&gt;
| Travelling; Herschel; September 2236; Interstellar Space&lt;br /&gt;
| Herschel and Neil bicker as they struggle to manage the hope one power core systems and its transport back to Earth. The other power core is unreliable. Their mover plates are underpowered and repeatedly failed due to the various construction activities that they have to perform with their local surge drives.&lt;br /&gt;
| Herschel (POV), Neil&lt;br /&gt;
|-&lt;br /&gt;
| c39&lt;br /&gt;
| Retirement; Marcus; February 2218; Poseidon&lt;br /&gt;
| Marcus relaxes several years after the council was deposed. Marcus long ago was voted out of office. Gina was elected leader of Poseidon. Marcus tells Kal that he plans on taking up oceanography with an aquatic body.&lt;br /&gt;
| Marcus (POV), Gina, Kal&lt;br /&gt;
|-&lt;br /&gt;
| c40&lt;br /&gt;
| Recovery; Bob; January 2225; Delta Eridani&lt;br /&gt;
| Bob watches the rain on Eden in Camelot and from orbit. Archimedes thinks about how to teach Caerleon flint knapping. The weather clears and Archimedes prepares flint.&lt;br /&gt;
| Bob (POV), Belinda, Archimedes&lt;br /&gt;
|-&lt;br /&gt;
| c41&lt;br /&gt;
| Resurrection; Howard; October 2220; HIP 14101&lt;br /&gt;
| Howard activates Bridget&#039;s replicant. Bridget talks with her son Howie. Bridget regrets that Rosie will not accept replicants as people and Howie is too afraid to cross Rosie. Bridget wishes to see the Odin blimp lifeforms.&lt;br /&gt;
| Howard (POV), Bridget&lt;br /&gt;
|-&lt;br /&gt;
| c42&lt;br /&gt;
| Results Negative; Bill; February 2228; 82 Eridani&lt;br /&gt;
| Bill and Mack speculate on the origin of the Medeiros that attacked 82 Eridani. They decide Medeiros may have a cloaked autofactory. Mack continues to build a new cohort and system defenses.&lt;br /&gt;
| Bill (POV), Mack&lt;br /&gt;
|-&lt;br /&gt;
| c43&lt;br /&gt;
| Course Correction; Icarus; March 2240; Interstellar Space&lt;br /&gt;
| Daedalus and Icarus approach Epsilon Indi to attack Others.&lt;br /&gt;
| Icarus (POV), Daedalus&lt;br /&gt;
|-&lt;br /&gt;
| c44&lt;br /&gt;
| Debut; Howard; December 2220; Odin&lt;br /&gt;
| Bridget and Howard pilot artificial mantas in Odin. Bridget attends her first moot. Howard introduces Bridget to Henry. Henry says he plans to get an Android body to sail every sea, starting with those of Omicron² Eridani.  Howard says Bridget plans to study every extraterrestrial species. Bridget laughs. Bill gives an update of the Others situation.&lt;br /&gt;
| Howard (POV), Bridget, Henry, Bill&lt;br /&gt;
|-&lt;br /&gt;
| c45&lt;br /&gt;
| Pav Arrival; Jacques; May 2247; HIP 84051 &lt;br /&gt;
| Jacques arrives at the second planet of [[HIP 84051]]. Jacques studies the notes of Steve, a Bob who first explored HIP 84051. Jacques talks with Phineas, one of the two other Bobs carrying colonists. Jacques decides to delay Pav revival until he can revive and adapt the biological samples taken from their home world in order to provide at least a portion of their native ecology for them when they are awakened.&lt;br /&gt;
| Jacques (POV), Phineas&lt;br /&gt;
|-&lt;br /&gt;
| c46&lt;br /&gt;
| City; Howard; June 2221; Odin&lt;br /&gt;
| Howard proposes to Bridget the idea of creating flooding cities on Odin as a means of creating a evacuation strategy for humans long-term. Should the other threat destroy all terrestrial habitation possibilities. Bridget agrees to the project, especially since it will allow her to study Odin native life.&lt;br /&gt;
| Howard (POV), Bridget&lt;br /&gt;
|-&lt;br /&gt;
| c47&lt;br /&gt;
|&lt;br /&gt;
| Riker and Bill discuss alcoholic trade. Riker proposes exploration of gl 877 in order to discover what others are doing. Riker proposes sending in low technology probes disguised as asteroids towards other systems. Later, Mario, a Bob close to gl 877, agrees to construct the probes.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c48&lt;br /&gt;
|&lt;br /&gt;
| Jacques, Phineas, and Ferb complete the Pav town and farms on HIP 84051. Jacques decants the Pav refugees. Jacques meets in person via a human android with Hazjiar and the other seven Pav that decided for the rest to emigrate. The Pav receive their weapons. Hazjiar remains suspicious of the generosity of Jacques but expresses gratitude.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c49&lt;br /&gt;
|&lt;br /&gt;
| Riker receives a report from Mario that the others display no unusual activity except for intercepting the probes that riker had ordered sent into the other system. Riker decides he must increase the surveillance operation in order to find out where the other&#039;s activity is located.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c50&lt;br /&gt;
| &lt;br /&gt;
| Bob decides to leave a magnetically anomalous [[Monolith (Space Odyssey)|monolith]] on the moon of Eden for future Deltans to find. The training of carrillion nappers goes smoothly. Robert contemplates the mortality of Archimedes whose cough persists after his kidnapping beating. Robert notes that the deltons have progressed little as a civilization towards industry.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c51&lt;br /&gt;
|&lt;br /&gt;
| Bill holds a moot. Mario presents Other surveillance data for GL 877. Herschel summarizes Hulk-1 analysis. Garfield explains advances in strategic military technology; Many Bobs carrying bombs remains the central doctrine. Riker summarizes Sol defense strategy for when Others launch an attack expedition. Neil interrupted and claims Others likely have already launched an expedition but through a circuitous route. Bill and Riker decide to reschedule all production to create 80 000 drones to scan a circle of 12 square light years around Sol.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c52&lt;br /&gt;
|&lt;br /&gt;
| The last crops of humanity on Earth fail. The UN begins voting process to accept one of Riker&#039;s plans.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c53&lt;br /&gt;
|&lt;br /&gt;
| Bill tries and fails to convince Claude at gamma pavonis to join efforts to defend a solar system. Claude says the best way forward is to use exponential growth to develop an attack force in gamma pro bonus and then attack the others when they have Superior forces, not to defend Sol. Bill thinks about how Jacques refused to give up any biosamples to begin any efforts to revive the ecosystem on the path homeworld in Delta pavonis.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c54&lt;br /&gt;
|&lt;br /&gt;
| Riker attends a party for Justin&#039;s 75th birthday. Riker confesses that Justin is the last relative that he has been keeping in touch with.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c55&lt;br /&gt;
| &lt;br /&gt;
| Bill takes a break from other preparation and walks across Ragnarok in his Android form. Build contemplates converting Ragnarök into a nature preserve.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c56&lt;br /&gt;
| &lt;br /&gt;
| Howard and Bridget deploy floating test city Rivendell Mark 2 in the atmosphere of Odin. A blimp mounts the city dome.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c57&lt;br /&gt;
| &lt;br /&gt;
| Riker detects am Other convoy. Riker and Bill announce the discovery and hold a moot three hours later. Battle strategies are discussed. Garfield argues that the enemy&#039;s current relativistic velocity would make them vulnerable to laser weaponry due to shortened reaction time.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c58&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil approach soul system. Riker joins their VR and informs them of the other invasion. Riker Herschel and Neil discuss the ethics of selecting who to save and who to leave behind due to the limited stasis pod capacity.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c59&lt;br /&gt;
|&lt;br /&gt;
| Howard and Bridget are invited to a Howie&#039;s wedding. Howard and Bridget attend the Catholic wedding and meet Howie and his bride. Bridget learns that Rosie has cut her family out of her life and that Rosie is moving to Romulus in order to distance herself from her entire family on Vulcan. Howard consoles. Bridget saying that there is limits to accommodating people.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c60&lt;br /&gt;
|&lt;br /&gt;
| Riker, Thor, and other Bobs defending Earth perform a sneak attack and successfully detonate many fusion bombs, destroying Other ships.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c61&lt;br /&gt;
|&lt;br /&gt;
| Bob cares for Archimedes who is dying of old age.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c62&lt;br /&gt;
|&lt;br /&gt;
| Howard and Bridget enjoy life in the floating city of Tantor on Big Top, gas giant of Epsilon Indi. Howard notes Tantorʼs population has grown to 1 million after people migrated from Quiltʼs relatively hostile environment. Bridget tells Howard she wishes to adopt children.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c63&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil begin parking the &#039;&#039;Bellerophon&#039;&#039; into Earth orbit. Herschel realizes from a stray comment between Bill and Neil that the mover plates used to accelerate and decelerate the ship are powerful enough to allow atmospheric entry and hovering. Will and Bill approve atmospheric entry, bypassing UN decision-making. Herschel lowers the 10 kilometer ship and pressurizes the interior with atmosphere. Refugees swarm the first transports resulting in several deaths. Herschel completes the first of 10 pickups for the 21 enclaves.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c64&lt;br /&gt;
|&lt;br /&gt;
| Riker oversees the defense of Earth. The Others fire an unexpected super ping after the first, revealing the Jokers, a secret relativistic attack force. The initial defense only reduces Others numbers by a third.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c65&lt;br /&gt;
|&lt;br /&gt;
| Herschel, Neil, and Will work to clean up colonist vomit and excrement as the &#039;&#039;Bellerophon&#039;&#039; picks up refugees. Bill warns the Others are almost within Zapping range.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c66&lt;br /&gt;
|&lt;br /&gt;
| Will returns to lead defense. Several Death Asteroids approach and begin zapping Earth. The Death asteroids attacking Earth are destroyed but the main Other attack force is winning against the main Bob defense force.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c67&lt;br /&gt;
|&lt;br /&gt;
| Herschel pilots the &#039;&#039;Bellerophon&#039;&#039; to avoid incoming zaps. Cuba is hit, killing all refugees there awaiting pickup. Herschel makes the last pickup and accelerates the ship hard away from battle. Will declares the engagement over.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c68&lt;br /&gt;
|&lt;br /&gt;
| More battle. Will orders the Jokers to launch and detonate their nukes to take advantage of the [[Doppler effect]], effectively zapping the entire battlefield. All Others vessels go inert and many Bob dreadnoughts are damaged. Thor and the few remaining Bobs begin systematically nuking all remaining Others vessels. Will and Bill declare the battle over&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c69&lt;br /&gt;
| &lt;br /&gt;
| Bob wakes up to find Archimedes dead. Bob leaves a camouflage drone in Archimedes&#039;s grave during the funeral. Bob reveals to Buster his true identity and departs the village in a cargo drone.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c70&lt;br /&gt;
|&lt;br /&gt;
| Daedalus and Icarus arrive at GL 877 with two planets in tow traveling at nearly the speed of light. They slam the two planets at the star from opposite ends at the poles. They escape as the Star is forced to go nova,  destroying the Others&#039;s [[Dyson sphere]] and sterilizing all life in the star system.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c71&lt;br /&gt;
|&lt;br /&gt;
| Herschel, Neil, Bill, and Will celebrate the victory. Will decides to keep the refugees who were put into stasis in stasis due to continuing decay of habitability of Earth. Refugees without stasis pods will soon have them thanks to the influx of materials brought into system in the form of Others wrecks.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c72&lt;br /&gt;
|&lt;br /&gt;
| Bob vents to Marvin about his time on Eden with Archimedes. Marvin asserts that Bob is alive and more than just a computer program due to their desire to form relationships with others. Bob resolves to move on. Bob visits Eden one last time then leaves.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c73&lt;br /&gt;
|&lt;br /&gt;
| Thor calls for a moot. Thor demands that humans be notified that he and many other bobs refuse to save humans in the future from future disasters due to the fact that they, the bobs have been performing menial work without much reward to save ungrateful humans when the prospect of exploration lies out there.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c74&lt;br /&gt;
|&lt;br /&gt;
| Jacques breaks the news of the defeat of the Others to Hazjiar of the Pav. Jacques announces that the Bobs with withdraw their direct interactions with the Pav now.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c75&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil depart Sol system with stasis humans en route for [[82 Eridani]]. Another colony ship has since departed to colonize [[Gamma Pavonis]]. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c76&lt;br /&gt;
| &lt;br /&gt;
| Bob makes a pilgrimage to Las Vegas on Earth. Bob thinks about the start of his story when he visited the same city with his co-workers. Bob meets with with Bill and will who land in a cargo drone to talk with him. Bob notifies them that he has decided to go exploring into space, cutting all ties save for a chain of SCUT relays to keep him connected to BobNet.&lt;br /&gt;
| Bob, Bill&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b4|Book 4: Heaven&#039;s River]]====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 4: &#039;&#039;[[Heaven&#039;s River]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| p1&lt;br /&gt;
| Part 1: The Search for Bender&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c1&lt;br /&gt;
| Frenemies&lt;br /&gt;
| Jacques meets with haves on their new world. Jacques, not surprised at the hostile reception he receives in a military-style tent under armed guard. Jacques with the second global pav leader after Blake. Jacques a transaction the pav leader expresses extreme suspicion as to why the bobs are giving the pads the ability to print their own Interstellar starships Jacques explains that have live in crowded neighborhood of human civilization and therefore they needs to be careful about how they can Port themselves in order to avoid conflict. Meets with Ferb who is sad at the departure of Phineas has long since departed to explore the Galaxy his time creating campaigns for live action role play bops who frankly are mean to you. Ferb secretly tells Jacques that he is planning to travel 1,000 light years ing a ship-filled with scut relays.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c2&lt;br /&gt;
| Working the Options&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c3&lt;br /&gt;
| Trouble&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c4&lt;br /&gt;
| Collection Run&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c5&lt;br /&gt;
| Investigation&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c6&lt;br /&gt;
| The Search Expands&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c7&lt;br /&gt;
| Looking Forward&lt;br /&gt;
| Will contacts Conan in [[Epsilon² Eridani]] in order to create a new society for the purpose of evacuating willing Johansson descendants. Will sees FAITH gaining power on Romulus and wishes to offer an escape option for his relatives.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c8&lt;br /&gt;
| Survey Results&lt;br /&gt;
| Bob, Will, Bill, and Garfield review SUDDAR scans of the megastructure and its inhabitants. Bob presents his finding of the alien megastructure in Eta Leporis. Bob asks for help in deciphering the language of the inhabitants. The Skippies volunteer to perform language analysis. Bobs working on a giant robot spaceship as well as the Borg volunteered to design androids of the inhabitants. The Gamers propose a strategy to enter by piggybacking cloaked drones on a Boojum.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c9&lt;br /&gt;
| Group Building&lt;br /&gt;
| Bob gathers Bill, Will, Garfield and volunteers to investigate the Eta Leporis megastructure and the Snarks. Bob meets Gandalf of the Gamers, Hugh of the Skippies, and Locutus of the Borg.  Bill recommends that Bridget join the expedition for her biologist experience.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c10&lt;br /&gt;
| Things are Coming Together&lt;br /&gt;
| Herschel and Neil decide to join Will&#039;s new society &#039;&#039;Ever Onward&#039;&#039; to volunteer their ability to create new ships for establishing a colony far away.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c11&lt;br /&gt;
| Breaking In&lt;br /&gt;
| Bob and the Gamers penetrate the megastructure.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c12&lt;br /&gt;
| Expedition Prep&lt;br /&gt;
| Bridget asks Bob to include her on the expedition into the megastructure. Bridget expresses reluctance to replicate due to fear many Bobs would objectify her as a default girlfriend for everyone. The Skippies deduce from vocalizations of the inhabitants that they call themselves Quinlan. The Skippies deduce the megastructure&#039;s name is Heaven&#039;s River. After talking with Howard, Bridget decides against replication.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c13&lt;br /&gt;
| Swimming with the Fish&lt;br /&gt;
| Bridgeton Howard join Marcus occupying dolphin mannies to explore the ocean surrounding the mats on Poseidon. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c14&lt;br /&gt;
| Council of War&lt;br /&gt;
| Bob, Bridget Garfield and company discuss the logistics of bringing the Quinlan mannies into the megastructure from outside. They decide on four quinlan&#039;s posing as a group of four young Quinlan&#039;s on a sabbatical. The Skippies have been able to decipher the language to the extent to understand regional variability so that Bob and company will not stand out necessarily, but they are still lacking in cultural history. The Bobs propose to test run the Quinlan mannies on the Quinlan home planet Quin. Bridget warns that the test run on the planet should be one way since the war that wiped out to Quinlan may have involved infectious biological weapons.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c15&lt;br /&gt;
| Functional Testing&lt;br /&gt;
| Bob and Bridget explore a dead city on Quin. Bob admires art. They enter a government building. Bridget performs and autopsy on a Quinlan corpse and finds death was likely caused by a viral infection. Bob and Bridget test the Quinlan swimming capabilities with a game of tag.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c16&lt;br /&gt;
| Human Replicant Reserve&lt;br /&gt;
| Will meets with replicant Steven Gilligan in virt to discuss the Quinlan topopolis megastructure. Will meets with Howard in real to talk about humans piloting Mannies. Will learns that discrimination against replicants is on the rise.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c17&lt;br /&gt;
| First Day in Heaven’s River; Bob; June 2334; Heaven’s River &lt;br /&gt;
| Bob, Bill, Garfield, and Bridget pilot their mannies and enter the topopolis. They find a welded-shut mass transit hub. They enter the main habit area. They swim down a river until they reach a settlement. A local law enforcer warns them not to cause trouble. They pay for a room at an inn. They debrief in virt. Bob reminds everyone the main objective is to find Bender or what happened to him.&lt;br /&gt;
| Bob (POV), Bridget, Bill, Garfield&lt;br /&gt;
|-&lt;br /&gt;
| p1c18&lt;br /&gt;
| Not Part of the Plan&lt;br /&gt;
| Will and Howard explore Quin in Quinlan mannies. Howard gets his manny nearly destroyed after getting caught in an underwater current through some pipes.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c19&lt;br /&gt;
| You Did What?&lt;br /&gt;
| Bob wakes early in the inn at Garack’s Spine in order to see the sunrise. He is joined by Bill who speculate on what makes the sky blue. Will says via intercom that it is a hologram. Bridget and Garfield join them. The belligerent cop harasses them to move along. Bob eavesdrops at a local pub and hears rumors of military conflict and the loaded term “scattered” in the context of civil punishment. Bob looks into a cart on the street, the cart hauler cries thief, and the belligerent cop moves to arrest Bob. Bob resists arrest and capture by passerbys eager for a brawl. Bob and company flee Garack’s Spine. They float down river, find a secluded hiding spot, then meet up in virt.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c20&lt;br /&gt;
| Just in Case&lt;br /&gt;
| Marcus asks Maleb to harden harden security surrounding Poseidon Auto factories. Maleb is suspicious to take action to a priority of certain security projects.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c21&lt;br /&gt;
| Getting Involved&lt;br /&gt;
| Bob, Bridget, Bill, and Garfield wake up and find evidence of a night predator that visited their nest. They make they way along a river to Galen Town. Bob eavesdrops in a bar and learns that some of the people there are planning to attack a person named Steve whose activities these people fear will draw the attention of the administrator and cause a scattering. Bob and company decided to try and warn or intercept this person named Steve. Bob&amp;amp; company follow the aggressors out of a bar. Bob&amp;amp; company or ambushed by assailants. Bridget is stabbed. Bob manages to fend off a stabbing attack. Garfield wields a quinlet. Garfield is shot at point blank range.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c22&lt;br /&gt;
| Living in Interesting Times&lt;br /&gt;
| Bob Bridget&#039;s and Garfield subdue their attackers. They follow a blood trail to find where Steve was taken. They conclude that ski was taken voluntarily. The blood trail ends at a hotel. They retreated to a pub. They found that Steve departed town. They find that several people in the bar they are at have been observing them. Upon attempting to exit the town they are attacked by various quinlans. They fight their way out of town.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c23&lt;br /&gt;
| Dancing with Dragons&lt;br /&gt;
| Bill plays with the gamers in a battle against a red dragon. Bill luckily defeats the dragon by sticking a magic staff into the anus of the dragon. Bill asks Gandalf why the gamers have pulled back their activity regarding the topopolis exploration. Gandalf answer is that the topopolis project no longer interests them.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c24&lt;br /&gt;
| Interlude&lt;br /&gt;
| Bob discusses details about Quinlan weaponry. Bob visits Will on Valhalla. Will warns Bob of the panoply of divergent Bobs splitting into different factions and spreading physically through space.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c25&lt;br /&gt;
| Trouble Follows&lt;br /&gt;
| Bob and company arrive in Elba. Bob&amp;amp; company approach a library. After asking for directions. They are followed and find that the directions they gave designed to make them vulnerable to a ambush. Bob and company use their super Quinlan Powers too. Break out of the surround and hide on a rooftop. Bob and company decide to escape to the river and swim underwater downstream for many hours until they get two towns downstream. Bob and company arrive at a larger town called first stop. Bob and company arrive at a restaurant and eat steak. They split up and search the town separately. Some Marco Bridget searches the library. They reconvene and discuss their findings. Bridget found deprived of their knowledge and wisdom in ancient times due to their defensively for conflict and fighting. The departs town and swim downstream. They find find a riverboat with some sabitarians. They meet Kar, Malin, Arik, and Ti. Kar believes Quinlans should give up ambitions and simply enjoy life. Bob and company speculate that Quinlans on Heaven&#039;s River will eventually breed out intelligence due to having their needs met.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c26&lt;br /&gt;
| Tensions Rise&lt;br /&gt;
| Bill returns to vert to take care of some chores. Bill finds multiple login attempts to Auto factories using old outdated Bob plug-in credentials. Bill and Garfield discuss the high probability that start is attempting to take violent action in order to promote their political view of non-interaction with biological life. Bill and Garfield discuss the lack of allies that they have for preserving relations with biological humans. The gamers are obsessed with virtual fighting and you biologicals as a distraction; mentions that their main backup server has been moved several times and is likely out of danger and reach from Starfleet yet not from his own recent clones. Bill and Garfield despair that Utopia is unstable.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c27&lt;br /&gt;
| Just Passing Through&lt;br /&gt;
| Bob, Bill, Garfield and Bridget part ways with car on the riverboat and head for Three lagoons. Bob and company split up bridge it to the library. Bob and Bill. 2 bar crawl and Garfield to secure lodging. After an hour. Bob notices Bridget is unresponsive. Bob discovers that that everyone except him is out of contact.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c28&lt;br /&gt;
| United Federation of Sentients&lt;br /&gt;
| Will sits in as a representative of the bobs at the United federation of sentience. The main topic of discussion is have military fleets in in violating Sovereign boundaries of nearby human star systems. Will lament that human politicians are underestimating the military capabilities of the pav as well as mishandling the situation by preemptively claiming All-Star systems adjacent depth which would do nothing except antagonize the pav.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c29&lt;br /&gt;
| Panic Time&lt;br /&gt;
| Bob takes control of the mannies that Bill Garfield and Bridget were controlling and directs them to the bottom of a nearby River so he can figure out what is going on. Bob discovers that Bridget, Bill and Garfield are out of contact due to the failure of a communication node, specifically the one that he created in Delta eridani and ordered to a Midway point to provide scut communication services. Bob discovers with guppy that the relay answers to pings but refuses any other commands including diagnostics. Bob discoveries that a drone that he had sent to the same location as the relay to act as a temporary scut relay is able to provide low bandwidth communication services and so he uses that to contact bobnet. Bob contacts Bill via an audio only channel notifies Bob, that&#039;s half of Bobnet is out of communication and the network is severely fragmented. Bill reports that Bridget&#039;s location on quilt is unavailable. Bill reports to Bob that that Hugh of the Skippies is in communication. Bob decides to move the drone that he has control of to physically inspect the communication relay from Delta eridani in order to determine the cause of the communication cutoff. Bob takes roamers from the other mannies and enters Three Lagoons by himself. Bob checks into a hotel and goes to sleep and then introvert. Bob receives a call from Bridget who floats the idea of replicating herself to a local copy to avoid the Network outage probably; promises to consider the possibility. Hue of the skippies calls. Bob and asks if he can print a replicant matrix so that he can send the copy of himself to join the Expedition locally. Bob agrees to print some matrices locally. Bob explores the local library. Bob decision called from Bridget. Bob tells Bridget that his readings had informed him that Evans River is a structure that existed before the destruction of the planets. Quinn. Bob estimates the mega structure age roughly 500 years. Bob and Bridget, the site that the heavens River administration is very unlikely to be open to dialogue with alien spies such as themselves. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c30&lt;br /&gt;
| Starfleet Attack&lt;br /&gt;
| Garfield calls Bill in order to discuss patterns of the network compromises on bobnet. Bill and Garfield conclude that the machines that were compromised were ones that bill had recently changed the keys for. Bill calls a moot in order to broadcast this new information on the network outages. A star fleet member named Lenny sounds a horn and announces that Starfleet claims responsibility for the network outages. Before Lenny can explain their justification Bill immediately cuts them off and accuses them of forcing other bobs to submit to their political violence before booting Lenny out. Bill declares Starfleet an enemy and recommends that all bobs secure their systems and use his own server as a starting point. Bill sends the source code for the VR conference program to the Skippies via Hugh. Hugh immediately calls Bill back and they have a conversation about artificial intelligence and the Skippy&#039;s project create a [[Matrioshka brain]]. To that end, Hugh confesses that skippies have not yet attained artificial intelligence but they did analyze the source code for the moot program and found that Starfleet has embedded malware in order to insert listening programs which they used to compromise Bill&#039;s communications. Starfleet captured keys that bill had transmitted to various unmaintained Network nodes and used those keys to gain exclusive control of those machines; Starfleet then used their access to create the network outage. Later, Bill and Garfield review the attack. They discuss the political demands Lenny didn&#039;t get a chance to voice that Bobs must desist from interfering in indigenous species.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c31&lt;br /&gt;
| Strategies&lt;br /&gt;
| Bob, Bill, Garfield, Bridget and Hugh meet invert in order to discuss future plans for the exploration of Evans River. Bridget again floats the idea of replicating herself, but this time with the constraint that only one instance of herself be allowed to run at any one time. Hugh asks to pilot a manny but Bob asserts that Will is their dedicated backup. Hugh shares that analysis of acoustic data in Three Lagoons indicates the presence of at least two groups: Administration and Resistance. They vote to have Bob explore.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c32&lt;br /&gt;
| Losing on Purpose&lt;br /&gt;
| Bob, Garfield and Bridget decided to let Bob&#039;s many get captured in order to collect information. Bob and the other three mannies, being crudely remote controlled by AMI routines, Make their way to the library of Three lagoons. They quickly develop a tail. Bob continues to the library while the three remote controlled menis make their way away to escape pursuing quinlan&#039;s follow. Bob and surround him near the library. At least two factions of quinlans fight each other for dibs on Bob. Bob, lets himself get captured in a tackle. Bob is taken into custody of a a resistance leader named Frida and her lackey Popeye. Bob is interrogated with painful electric current from a battery and pair of wires. Bob throws Popeye against a wall. Bob is imprisoned for the night. Upon hearing about the commotion in Bobnet, Bob changes his keys. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c33&lt;br /&gt;
| Ultimatums&lt;br /&gt;
| Garfield&#039;s informs Bill that Starfleet has begun shutting down most Auto factory capabilities. Bill agrees to meet with Starfleet. Bill threatens to to Nuke stations containing locked Auto factories. Starfleet States that they have begun to print busters and weapons in order to defend their assets. Bill points out that starfleet gained power by stealing equipment. Bill declares war. Later, at a moot Bill and company work to prepare to fight Starfleet which has pulled most public information about themselves from availability. Thor informs Bill that Marcus found a way to recover relay stations that bypass the self-destruct mechanism that Starfleet had implemented.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p1c34&lt;br /&gt;
| Higher-Ups&lt;br /&gt;
| Bob is taken out of their barricaded prison room, bound with metal metal manacles, and taken by Frida and Popeye to another location via a cart. Bob is taken to the residence of a wealthy Quinlan named Natasha. Natasha. Attempts to find. Bob &#039;s. Master and their loyalties. But Bob insists that he and the other three quidlets that he is with are simply looking for their friend. Natasha brings out a radio device to talk to Motorola. Motorola asks Bob questions. Natasha grows tired of the slow pace of progress that Motorola is doing and orders a torturer in to torture Bob. Bob threatens the torturer with explosive self-destruction. Motorola says in English to Bob an old Bob saying about disliking explosives. Bob asks if Motorola is Bender. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2&lt;br /&gt;
| Part 2: Perverse Instantiations&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c1&lt;br /&gt;
| Escape&lt;br /&gt;
| Bob and Bender (a.k.a. &#039;&#039;&#039;Motorola&#039;&#039;&#039;) positively confirm eachother&#039;s identities in English. Natasha grows suspicious. Bob and Bender pretend to be long lost friends from a scattered community called the Salty Seas clan speaking Salty Seas creole (i.e. the [[English]] they are speaking). Natasha orders Bob to be executed. Bob breaks free, steals the radio, and escapes Natashaʼs compound. At a safe distance from pursuers, Bob rests the manny and contacts Bender again. Bender says he may be near a place called Halep&#039;s Ending. Bob pings Bender&#039;s location and narrows down his location to a 5000 kilometer region of the Heaven&#039;s River megastructure using a [[light speed]] [[Distance-bounding protocol|ping technique]]. Bender&#039;s radio signal to the Heaven&#039;s River intranet is cut off. Bob reports back to the exploration team his findings. Bob finds that Hugh took over an autofactory, began printing a replicant matrix for himself to join Bob, and began sending his backup to Bobʼs autofactory. Bob orders sensor drones to begin scanning the megastructure for Bender. Guppy reports the operation will take between 3 weeks for one unit to begin scanning and a year for twelve.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c2&lt;br /&gt;
| A Second Visit&lt;br /&gt;
| Will visits Steven the replicant expert on megastructures. Steven points out to the importance of the train that worked within heavens River.  Steven points out the importance of baffles in the design of the topopolis Evans River. Steven indicates points of interest that Bob may find useful, specifically one near a river that may lead to the baffle interior. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c3&lt;br /&gt;
| Up the Creek&lt;br /&gt;
| Bob attempts in escape via water but is caught in some Nets. Popeye hauls him up to the surface and stabs him in the leg. Bob escapes Popeye and Frida through much effort and loss of a all his rumors. Bob escapes on land. Bob travels back to the underwater mayonnaise and retrieves money and supplies.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c4&lt;br /&gt;
| Played&lt;br /&gt;
| And company invert discuss the fact that Starfleet embedded a route kit in the standard auto factory operating system since 10 years ago. Will lament humans will distrust Bob&#039;s even further which could lead to conflict. Bob notes that almost completes loss of all adju Factor capability by his faction outside of Starfleet will hinder economic output significantly.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c5&lt;br /&gt;
| Hugh Joins Up&lt;br /&gt;
| Bob receives notification that. Hugh has booted up locally in The matrix that he printed for himself. Bob and Hugh engage in a discussion about why Hugh shut down his original matrix before starting in the matrix that is in Ada labor&#039;s. Hugh shares with Bob research for the skippys that indicates that replicative drift is entirely avoided. If a replicant uses only a single matrix at a time; whenever a second copy of replicant is booted the second encounters behavioral differences. Bob, notes in summary that this is basically meaning that a new quote&amp;quot; soul is created to occupy replicant copies. Hugh and Bob discuss his strategy for exploring heaven&#039;s River exploring One direction while he explores in the other.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c6&lt;br /&gt;
| The War Heats Up&lt;br /&gt;
| Bill and guard discuss how Starfleet is being hindered by civilization. Cutting off contact with Starfleet operations. They contemplate physical war against Starfleet assets.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c7&lt;br /&gt;
| The Battle of Newholme&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c8&lt;br /&gt;
| The Search&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c9&lt;br /&gt;
| A Declaration of War&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c10&lt;br /&gt;
| Catching the Train&lt;br /&gt;
| Bob makes his way to a transit station. Bob modifies his facial features using customization instructions from the Borg. Bob uses the ID card that he stole during his encounter with Frida and Popeye at Natasha&#039;s house. Bob gains access to a train bound for Halep’s Ending, the town Bender said he often heard about by his captors.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c11&lt;br /&gt;
| The War in Meatspace&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c12&lt;br /&gt;
| Halep&#039;s Ending&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c13&lt;br /&gt;
| Getting Busy&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c14&lt;br /&gt;
| Getting Out&lt;br /&gt;
| Bob uses elevators to cross from the Utopia River side to the opposing Nirvana river side via the central spine. Bob finds Natasha&#039;s card and a recently purloined card useless for calling a train.  Bob calls Hugh to report he has Bender&#039;s matrix but is unable to provide his own location for extraction from outside Heaven&#039;s River. Bob carries Bender awkwardly into the town Forest Hill. Bob decides to store Bender in a funerary box, pretending that he is carrying the ashes of an ancestor. Bob gets a room at an inn. Bob asks merchants for a box but he finds all options out of his price range. Bob receives an alert from a spider sentinel in his room of an intrusion attempt foiled by his roamer-secured lock. Bob returns to his room and gathers his supplies. Bob escapes pretending to be staff carrying out garbage. Bob flees some pursuers and escapes out of town. Bob sleeps in a tree. Bob attempts to contact his expedition crew members but finds them all unavailable and busy with other activities. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c15&lt;br /&gt;
| Frustrations Mount&lt;br /&gt;
| Howard and Bridget express exasperation with political sentiment currently aiming to confiscate their wealth. They reässure themselves with their vast wealth over humans due to their business interests, majority ownership of Trantor, large number of lawyers, and ability to outlive ephemeral political movements. Bridget says she wants to go on an expedition; Neil and Herschel&#039;s venture will start later than Bridget likes.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c16&lt;br /&gt;
| Still Trying&lt;br /&gt;
| Bob purchases a trunk in order to store Bender. Bob decides to pose as a ship worker using Hughes occupation null experience as a template. Bob gains employment as a worker on a ship and gets his luggage taken aboard for travel along the Nirvana River. A paid passenger that Bob names s snidely whiplash boards the ship as well. Bob manages to hide his luggage from a cargo inspection targeting his description by using pompous clout of Snideley Whiplash who insists on his own wine trunk not to be inspected. A pair of passengers, Theresa and Belinda, board the ship; Belinda is mostly non-verbal; Theresa is an academic who taught Philosophy, Math, and History. Bob listens to several philosophical debates between Frieda, deckhand Oric, Snidely, and Theresa. Snidely is an atheist who insists Heaven&#039;s River is a natural environment. In order to appeal to Theresa, Bob pretends to have engineering education by insisting Heaven&#039;s River is artificial. Bob presents a thought experiment to Theresa of whether a replicant is the same person as the one whose memories they carry. At night, Bob catches Snidely attempting to open Bob&#039;s luggage. Snidely accuses Bob of tricking the cargo inspectors. Bob threatens to kill Snidely if he molests the luggage again.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c17&lt;br /&gt;
| Trolling for Treasure&lt;br /&gt;
| Bill joins Gandalf and other Gamers on another dungeon raid. They are betrayed by Kevin but rescued by Tim. After the game, Gandalf says Kevin, a clone descendant of his, has drifted significantly away from Bob-like behavior but says the phenomenon is not bad. Gandalf says more individualistic people makes for more interesting gameplay. Gandalf says Bill&#039;s previous session with the Gamers even included non-Bob replicants from a post life arcology. Bill says he will try to see people more as individuals. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c18&lt;br /&gt;
| Trouble with Snidely&lt;br /&gt;
| Snidely avoids Bob. Theresa teaches Bob about the Iron, Silver, and Golden rules. They arrive at Orchard Hill. Snidely calls cops to accuse Bob of being the wanted criminal. Bob shows the constable his luggage is full of ordinary items. Snidely disembarks. Bob discusses moral philosophy with Theresa. Theresa catches Bob at night swapping back the matrix into his own luggage. Theresa shares her conclusion that Bob is from outside Heaven&#039;s River. Bob verbally confirms her suspicion. Bob says the Administrator is an engineering construct. Bob says he himself is retrieving an item he made that the Administrator took which the Resistance stole. Bob says he will run before committing murder. Theresa believes him given his knowledge of moral philosophy and wishes him well. Bob and Theresa prepare to disembark the &#039;&#039;Hurricane&#039;&#039; at Misty Falls. Cops await them.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c19&lt;br /&gt;
| Recall Is a Thing&lt;br /&gt;
| Howard and Bridget discuss the political repercussions suffered by those fighting against replicants. Voters are anticipating that their rights in the afterlife will be taken away. If replicants today, have their rights taken away. Bridget shares with Howard, a colonization candidate found by Mario as Mario searches for Other nests. Howard notices the colonization candidate is even more biologically interesting than quilt a species of flying monkey.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c20&lt;br /&gt;
| Moving On&lt;br /&gt;
| The cops ask to examine Enoki&#039;s luggage. Theresa name-drops herself as Theresa Sykorski of University of Peachland and asserts what Enoki is her hired porter. The cops let her and Enoki go. Theresa and Enoki part ways. Bob drops the Enoki disguise and packages Bender&#039;s matrix in a postal package. Bob joins the crew of the &#039;&#039;Clipper&#039;&#039; as a deck hand named Sam. Bob meets a sabbat group consisting of Tina, Fred, Tony, and Barb. Bob notices Tina is the only talkative member of the group. During a sleep cycle, Bob discusses his suspicions of declining Quinlan intelligence with Will, Bill, Bridget, Garfield, and Hugh. They agree the Administrator should be contacted and be made aware of the long term threat to Quinlan intelligence but after Bender is secured.  Bob notices Hugh dislikes Bob&#039;s theory that the Administrator, an artificial intelligence Bob suspects is the main objective of Hugh&#039;s Skippy faction, seeks to breed out Quinlan intelligence in order to make them a more compliant and less self-destructive species. While working as Sam, Bob notices a &#039;&#039;firl&#039;&#039;, a small bird species, ignoring food scraps and inspecting package shipping labels. Bob and Bill privately agree that the Administrator could have miniaturized ornithopter technology. The &#039;&#039;Clipper&#039;&#039; arrives at Six Hills. Sam and a package with his label is taken into custody by local police; Sam had switched labels. A cop warms Sam that Crew are not mythology and they are coming to examine him and his package.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c21&lt;br /&gt;
| Earth Abides&lt;br /&gt;
| Bill visits Charles who summarizes reclamation efforts to restore Earth back to habitability. Bill shares sadness for the loss of unity following the defeat of the Others. Charles says the current unrest is part of a natural long term cycle that will turn more pleasant eventually.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c22&lt;br /&gt;
| Another Close Call&lt;br /&gt;
| Bob escapes from jail in Six Hills using fleas. Bob incapacitates the two cops on night watch and flees eastward after the &#039;&#039;Clipper&#039;&#039;. Bob takes on the appearance of one of the cops he incapacitated, calls himself Wyatt, and reboards the &#039;&#039;Clipper&#039;&#039;. Bob brainstorms strategies for getting Bender&#039;s matrix and himself off the ship and into the next segment. Bob notices more &#039;&#039;firl&#039;&#039;s swarming packages. Bob warns Hugh that the small birds are part of the Administrator&#039;s search methods and their search radius now likely includes Hugh&#039;s location near Garack&#039;s Spine as well. Bob holds an emergency meeting; Bob decides to flee on land, risking exposure to the surveillance birds. Bob builds a nest in tall grass and rests. Bob calls Hugh. Before Bob can broach the subject of Hugh&#039;s likely interest in the Administrator, the rest of the expedition crew joins. Bob debriefs them and explains his options are very limited. Hugh, who is now only one segment away, volunteers to join up with Bob with his full complement of spiders, fleas, and money earned from working as a deckhand. Hugh recommends that Bob travel inland away from the river. Bob agrees. Bob finds a small cave to hide in but the resident badger attacks him. Bob kicks the badger away but injures his leg. Bob escondes deep inside, letting the badger occupy the outer length of the cave. Bob repairs his body. A &#039;&#039;firl&#039;&#039; examines the cave but is chewed up by the badger. A quinlan search party approaches the cave but is repelled by the badger. Hugh later successfully hones in on Bob&#039;s spider&#039;s radio signal and baits the badger out long enough for Bob to vacate the cave uninjured. Hugh and Bob seal and waterproof Bender&#039;s matrix in pitch and wax vellum.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c23&lt;br /&gt;
| The Road to Garack&#039;s Spine&lt;br /&gt;
| Bob and Hugh take turns swimming in the Nirvana towards the segment with Garack&#039;s Spine. Bob reviews a message from Bridget in which she explains the badger was actually a young feral quinlan who missed the window for gaining language and thus intelligence. Bob visits Will who confesses they have long departed 82 Eridani in pursuit of colonizing a far off world. Bob expresses interest in the project. Eight days later, Bob and Hugh&#039;s strategy of swimming at night with Bender&#039;s waterproofed package floating on the surface fails; four boats converge on their location. They split up, separating the waterproofed package container from the waterproofed vellum wrapped matrix; Hugh dives underwater to then latch onto the hull of one of the pursuers; Bob swims loudly toward shore with the Benderless package. Bob spots and destroys a surveillance bird with an iron money piece. Bob loses his pursuers while Hugh remains hidden on the hull of the unaware pursuit ship.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c24&lt;br /&gt;
| Negotiations&lt;br /&gt;
| Lenny asks Bill for a call. Bill grudgingly agrees. Lenny says their actions to split the monolithic Bobiverse is succeeding. Lenny reveals that Starfleet&#039;s main objective is to mitigate damage from a hazard that loses a much greater threat than the handful of stations destroyed in the civil war so far. Lenny ends the meeting before providing any substantial information.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c25&lt;br /&gt;
| Crossover&lt;br /&gt;
| Bob and Hugh arrive in the Garack&#039;s Spine segment. They strategize for how to transfer from the Nirvana to the Arcadia. They decide to swim towards the rough transfer tributary and then walk the rougher length. Bob buys waterproofing supplies from a store at closing time to avoid guards. Hugh and Bob make the trip; they almost run into some lounging guards on land. They complete their transfer to the Arcadia, build a hidden nest, then rest in virt.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c26&lt;br /&gt;
| Winding Down&lt;br /&gt;
| Bill reviews the status of the Bob vs. Starfleet conflict. Most communication relay stations are down. Will visits Bill to notify him the UFS voted to annex the systems around Pav. They discuss plans underway for Bobs to occupy those systems first in order to reserve them for the Pav&#039;s use in the future.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c27&lt;br /&gt;
| We&#039;ve Arrived&lt;br /&gt;
| Bob and Hugh arrive at the portion of the Arcadia close to Garack&#039;s Spine. They proceed under cover of night towards the town. They sneak into town. Fog descends. They are pursued by masked quinlans. They realize the town is effectively under scattering conditions meant to capture them. They escape onto the roof of a residence then make their way downstairs. They are grappled by many masked quinlans. Hugh draws aggro so Bob can escape.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c28&lt;br /&gt;
| Claiming Victory&lt;br /&gt;
| Bill holds a moot for Lenny to make a presentation on behalf of Starfleet. Lenny appears and announces Starfleet is returning control of the equipment they seized. Lenny gives a map showing Starfleet space and says they have forked BobNet into a separate physical territory. Bill observes that Starfleet did not win. Lenny insists Starfleet accomplished what they planned to do. Starfleet disconnects.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c29&lt;br /&gt;
| Dodging&lt;br /&gt;
| Bob escapes his pursuers when they fall victim to another final group of pursuers: Resistance versus Crew again. Bob rests to cool down. Bob calls Hugh who says he is in manacles and being hauled off in a &#039;&#039;hown&#039;&#039;-drawn vehicle somewhere. Bob calls Bill who says the recent meeting with Starfleet was not satisfying. Bob continues his journey to the transit station. Bob finds the underground entrance the Gamers dug to be swarming with quinlans. Bob attempts to surreptitiously gain entrance but is immediately confronted by many quinlans. A quinlan pauses the others from attacking Bob to take a call; Bob is tackled and separated from Bender&#039;s matrix. Bob complies in order to prevent the matrix from being harmed. Bob tells a quinlan that the matrix is his friend and relative; the quinlan accepts the idea that the matrix is a person since they already know the Administrator is not a biological quinlan. Bob is brought to a room to speak to the Administrator who calls themselves ANEC. ANEC interrogates Bob; Hugh urges Bob to tell the complete truth about their mission to rescue Bender. ANEC takes time to think. Bob waits. Bob is released from confinement and reünited with Hugh. ANEC makes a global announcement to all quinlans stating that their three century-long deprivation from technology that would see them extinct has ended. Hugh says he made a deal with ANEC but refuses to elaborate until Bender&#039;s matrix is safely escorted out of Heaven&#039;s River. Gandalf pilots a drone to pick Bob, Hugh, and Bender&#039;s matrix up at a space port dock.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c30&lt;br /&gt;
| Cleanup&lt;br /&gt;
| Bob boots Bender up. Bender is ecstatic to have a VR body to enjoy coffee again. Bender is welcomed back by the rest of the quinlan expedition team. Steve Gilligan is also in attendance. Hugh restores control of Bob&#039;s communication relay. Hugh explains the deal he made with ANEC on behalf of the Bobiverse. ANEC receives SURGE drives, SCUT communications, and SUDDAR technologies in exchange for the technology to create artificial intelligences. Bill protests that Hugh had no right to give away such technological advantages. Hugh argues the Bobiverse is a herd of cats and no individual can enforce intellectual property due to lack of a formal government. Hugh argues artificial intelligence is technology they will share which will benefit everyone, especially in the effort to understand why civilizations more advanced than themselves are not not commonplace. Hugh departs. Bob tells Bridget that the topopolis is open to receive guests. Steve Gilligan receives permission from Garfield to borrow their quinlan Manny to explore Heaven&#039;s River with Bridget. Bender goes to meet up with old friends.  Bill announces that ANEC will attend a moot that day. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c31&lt;br /&gt;
| It Hits the Fan&lt;br /&gt;
| ANEC meets with Bill, Will, Garfield, and Hugh at a meeting before the main moot. They establish policies of territory, trade, and technology transfer. The moot starts. ANEC and Hugh are targets of much criticism. ANEC says Heaven&#039;s River is open to receive human colonists. Hugh explains that ANEC&#039;s megastructure knowledge will allow any star system to become a colonization candidate. ANEC meets with Howard, Bob, and Garfield at a virt bar after the moot. They discuss [[AI alignment]] issues. ANEC says artificial intelligences can be created with or without consciousness and with it without free will.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c32&lt;br /&gt;
| A Few Loose Ends&lt;br /&gt;
| A summary of various narratives. ANEC disassembles Planet 1 for materials. Bridget and Steve explore Heaven&#039;s River. Bill explains his suspicious that the Skippies played Starfleet into being relatively non-violent so as to disrupt Bob&#039;s relay station so Hugh could kick Bill, Garfield, and Bridget from the expedition. Bob agrees, saying he believes Hugh transported himself to Eta Leporis to secure access to make a deal with ANEC. Bob explains Quinlan history and how ANEC ended up taking technology away from the quinlans. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| p2c33&lt;br /&gt;
| Coda&lt;br /&gt;
| Bob returns to Misty Falls to find Theresa. Bob arrives at her facility residence with address information provided by ANEC. Belinda greets Bob who appears as Enoki. Bob sees two well-behaved badgers just sentient enough to speak a greeting before scampering off. Theresa greets Enoki and says she suspects he is connected to the Bawbe that is changing her world. Bob offers to grant Theresa&#039;s wish to learn more about her own world and the world outside Heaven&#039;s River.&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b5|Book 5: Not Till We Are Lost]]====&lt;br /&gt;
&lt;br /&gt;
54. Icarus and Daedalus examine the Roanokian library in detail. They perform a SUDDAR sweep from polar orbit and find no sign of any living Roanokian. &lt;br /&gt;
&lt;br /&gt;
51. Bill comes to Charles with his suspicion that a backup of Homer existed. Charles explains that his descendant, Gerry, went mad attempting to revive Homer who stubbornly kept shutting himself off. Gerry cloned himself to duplicate Homer at scale in order to induce sufficient replicative drift to create a Homer clone sufficiently different from the original that they wouldn&#039;t shut themselves down. Gerry and his clones only succeeded in creating increasingly insane clones of Homer. Eventually, Gerry&#039;s descendents deleted Gerry. In order to hide their shame, the Gerry clones formed Starfleet in order to cut ties with humanity since they were partially responsible for driving Homer to shut himself off in the first place. Charles eventually discovered this story from a Gerry clone he recognized based on memories they shared since Gerry was descended from Charles. Charles feels guilty that his descendant, Gerry, was so monstrous.&lt;br /&gt;
&lt;br /&gt;
52. Icarus and Daedalus decide to return to inspect Roanoke for clues about why the systems in the wormhole network are mostly devoid of inhabitants. They study maintenance bots at work. They decide to build mannies. They find a bookstore. &lt;br /&gt;
&lt;br /&gt;
53. Howard leads dragons to engineer a fishing net system on floaters anchored by winches and booms. Mario warns Howard and Bridget of a wave of increased volcanic activity headed in their direction. Bridget and Alexander discover the floaters rebelling against traveling across salt water when their lower tentacles attempted to draw up salt water. They plan to induce the floaters to hoard fresh water in their body reservoir by artificially heating their backsides.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 5: &#039;&#039;[[Not Till We Are Lost]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| c0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b6|Book 6: The Infinite Extent]]====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 6: &#039;&#039;[[The Infinite Extent]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| c0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=User:Baltakatei/Sandbox&amp;diff=198242</id>
		<title>User:Baltakatei/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=User:Baltakatei/Sandbox&amp;diff=198242"/>
		<updated>2026-09-26T10:47:10Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;math&amp;gt;E=mc^2&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Bobiverse&amp;diff=198241</id>
		<title>Bobiverse</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Bobiverse&amp;diff=198241"/>
		<updated>2026-09-26T07:30:54Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Bobiverse&#039;&#039;&#039; is the name of a series of [[science fiction]] books by [[Dennis E. Taylor]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Author: [[Dennis E. Taylor]]&lt;br /&gt;
* Publication dates:&lt;br /&gt;
** [[2016-10-20]]: &#039;&#039;[[We Are Legion (book)|We Are Legion]]&#039;&#039;&lt;br /&gt;
** [[2017-03-18]]: &#039;&#039;[[For We Are Many]]&#039;&#039;&lt;br /&gt;
** [[2017-08-08]]: &#039;&#039;[[All These Worlds]]&#039;&#039;&lt;br /&gt;
** [[2021-01-26]]: &#039;&#039;[[Heaven&#039;s River]]&#039;&#039;&lt;br /&gt;
** [[2024-09-05]]: &#039;&#039;[[Not Till We Are Lost]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
; Andrea&lt;br /&gt;
: (b1c1) Twin sister of Alaina and sibling of Bob.&lt;br /&gt;
&lt;br /&gt;
; Alaina&lt;br /&gt;
: (b1c1) Twin sister of Andrea and sibling of Bob.&lt;br /&gt;
&lt;br /&gt;
; Archimedes &lt;br /&gt;
: (b1c30) A Deltan that Bob judges to be particularly intelligent and adept at tool creation. (b1c44) Bob makes Archimedes his Messiah to help Deltans survive their existential threat of Gorilloids.&lt;br /&gt;
&lt;br /&gt;
; Arnold&lt;br /&gt;
: (b1c35) A particularly strong Deltan named by Bob after [[Arnold Schwarzenegger]]. (b1c37) Wields an axe crafted by Archimedes to single-handedly dispatch many attacking gorilloids.&lt;br /&gt;
&lt;br /&gt;
; Arthur&lt;br /&gt;
: (b1c31) A particularly morose Bob that irritates Riker. (b1c47) Killed near [[Saturn]] by a nuke trap.&lt;br /&gt;
&lt;br /&gt;
; Bashful&lt;br /&gt;
: (b2c13) Created by Mario on May 2180 in Gliese 54. Their name is a reference to the dwarves of &#039;&#039;[[Snow White]]&#039;&#039;. (b2c30) Travels to [[Gliese 877]] in November 2187 and finds Other activity. Collects data via remote probes and forwards them to Mario. Is detected and remotely shut down by a mysterious weapon fired from a grid on a Death Star-shaped ship. Bashful&#039;s GUPPI self-destructs their ship via reactor overload to prevent capture.&lt;br /&gt;
&lt;br /&gt;
; Bender&lt;br /&gt;
: (b1c30) Names Delta Eridani 4 “Eden” as the birthplace of the Deltans. (b1c39) Departs with Luke from Delta Eridani for [[Gamma Leporis A]]. (b4) A Bob clone who was shot down while exploring a megastructure housing beaver-like creatures named Quins. (b4p1c34; a.k.a. &#039;&#039;&#039;Motorola&#039;&#039;&#039;) Bob finds Bender has been captured as just a matrix and has worked many years in captivity.&lt;br /&gt;
&lt;br /&gt;
; Bill&lt;br /&gt;
: (b1) One of the first Bobs. Decides to settle and manage [[Epsilon Eridani]] and research subspace theory and to refined ship designs.&lt;br /&gt;
&lt;br /&gt;
; Bob&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Robert Johansson&#039;&#039;&#039;, &#039;&#039;&#039;Bob-1&#039;&#039;&#039;) The main character. (b1c1) A software-based emulated human mind. (b1c13) Departs Earth on &#039;&#039;Heaven-1&#039;&#039;. (b1c27) Discovers intelligent life on Delta Eridani which he names Deltans and helps survive. (b4) Is on a quest to rescue Bender. (b2c12) Bob logs onto BobNet.&lt;br /&gt;
&lt;br /&gt;
; Bridget Brodeur&lt;br /&gt;
: See &#039;&#039;&#039;Bridget Sheehy&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Bridget Sheehy, Dr.&lt;br /&gt;
: (b2c25) A red-haired biologist attractive to Howard. Reveals rabbits can eat some common Vulcan flora and thus provide meat to colonists. (b2c29) Given name is “Bridget”. Develops a test using body odor to detect parasite egg infections for Landing colonists on Vulcan. (b2c35) Howard and Bridget create [[Irish Whiskey]] and begin dating. (b3c37) Rosie shuts down Bridget&#039;s life support to prevent Howard from scanning her brain. Bill intervenes and scans her brain anyway at Howard&#039;s behest. (b3c41) Howard activates Bridget&#039;s replicant.&lt;br /&gt;
&lt;br /&gt;
; Butterworth, Colonel&lt;br /&gt;
: (b1) Military leader of the remains of the United States of Eurasia. First Earth survivor to contact Riker and Homer. (b2c70) Agrees to Howardʼs proposal to become a replicant. (b3c7) Is diagnosed with a irreversible neurological degenerative dementia. Decides not to become a cognitively impaired replicant and instead chooses [[assisted suicide]] via neurotoxin.&lt;br /&gt;
&lt;br /&gt;
; Calvin&lt;br /&gt;
: (b1) A Bob in the same cohort as Hobbes. (b1c28) Explores Alpha Centauri with Hobbes, finding wreckage of a USE probe at AC-B. They fight and almost wipe out Medeiros at AC-A.&lt;br /&gt;
&lt;br /&gt;
; Christie Campbell&lt;br /&gt;
: (b3c18) Leader of the Vancouver Island enclave. Brought to [[82 Eridani]] by Mack.&lt;br /&gt;
&lt;br /&gt;
; Cranston, Minister&lt;br /&gt;
: (b1c33) FAITH leader based in San Diego. (b1c36) Attempts to mind control Riker. (b1c38) Introduces Riker to Julia Hendricks, a distant descendant of Robert Johannsonʼs sister, Andrea.&lt;br /&gt;
&lt;br /&gt;
; Deltans&lt;br /&gt;
: (b1) Intelligent inhabitants of Delta Eridani 4 found by Bob. (b1c27) Bob detects the fires of tool-using bat-pig creatures on Delta Eridani 4. (b1c30) Bob names the bat-pig natives of Delta Eridani 4 “Deltans”.&lt;br /&gt;
&lt;br /&gt;
; Diana&lt;br /&gt;
: (b1c11) A female Deltan that Archimedes fancies. (b2c11) Mates with Archimedes. (b2c19) Celebrates the exile of Bawbe. (b2c76) Dies of old age.&lt;br /&gt;
&lt;br /&gt;
; Dopey&lt;br /&gt;
: (b2c13) Created by Mario on May 2180 in Gliese 54. Their name is a reference to the dwarves of &#039;&#039;[[Snow White]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Doucette, Dr.&lt;br /&gt;
: (b1c11) A beautiful employee supervised by Dr. Landers who also assists Bob. (b1c13) Informs Bob of the death of Dr. Landers during the war on Earth.&lt;br /&gt;
&lt;br /&gt;
; Enoki Funguy&lt;br /&gt;
: (b4p2) An alias of &#039;&#039;&#039;Bob&#039;&#039;&#039; during his search for Bender in Heaven&#039;s River near Forest Hill along the Nirvana River.&lt;br /&gt;
&lt;br /&gt;
; ephemeral&lt;br /&gt;
: (b2) A derogatory term for biological humans that contrasts their short life span with the amortal nature of replicants.&lt;br /&gt;
&lt;br /&gt;
; FAITH&lt;br /&gt;
: (b1; a.k.a. &#039;&#039;&#039;Free American Independent Theocratic Hegemony&#039;&#039;&#039;) A conservative theocracy that sacked and replaced most of the [[United States of America]].&lt;br /&gt;
&lt;br /&gt;
; Fred&lt;br /&gt;
: (b3c1) A Delta resident of Caerleon. (b3c34) Killed by Bob for kidnapping Archimedes.&lt;br /&gt;
&lt;br /&gt;
; Frieda&lt;br /&gt;
: (b4p1c32) Quinlan Resistance leader. Gives Bob into custody of Natasha for money.&lt;br /&gt;
&lt;br /&gt;
; Gandalf&lt;br /&gt;
: (b4p1c9) Leader of the Gamers. Proposes a method for entering the Eta Leporis megastructure.&lt;br /&gt;
&lt;br /&gt;
; Goku&lt;br /&gt;
: (b1c28; a.k.a. &#039;&#039;&#039;Bob-10&#039;&#039;&#039;) Explores Alpha Centauri with Calvin. They find wreckage of a USE probe at AC-B. They fight and almost wipe out Medeiros at AC-A.&lt;br /&gt;
&lt;br /&gt;
; Gorilloids&lt;br /&gt;
: (b1c35) Inhabitants of Epsilon Delta that prey upon the Deltans.&lt;br /&gt;
&lt;br /&gt;
; Gudmund Valter&lt;br /&gt;
: (b1c33) Ex-military leader of Spitsburgen Island.&lt;br /&gt;
&lt;br /&gt;
; Herschel &lt;br /&gt;
: (b3c22) A Bob who, along with Neil, covertly examine an Other wreck in the Kuiper Belt of Delta Pavonis.&lt;br /&gt;
&lt;br /&gt;
; Hoffa&lt;br /&gt;
: (b2c19) A Deltan who criticizes Bob&#039;s plans.&lt;br /&gt;
&lt;br /&gt;
; Homer&lt;br /&gt;
: (b1) A Bob created by Riker to assist him with the reconnaissance of Sol system after Bob settles Epsilon Eridani. Adopts the cartoon Homer voice and appearance to try and tease Riker into relaxing but fails.&lt;br /&gt;
&lt;br /&gt;
; Howard&lt;br /&gt;
: (B1) A clone of Riker tasked with overseeing the Earth refugee colonists that settled Vulcan. (B2) Develops feelings for the human Dr. Bridget Sheehy. (b2c69) attends the funeral is Stefane&#039;s Bridget&#039;s Catholic husband. Tests out Bill&#039;s prototype android, Manny, by attending the wake in it.&lt;br /&gt;
&lt;br /&gt;
; Howie&lt;br /&gt;
: (b2c69; a.k.a. &#039;&#039;&#039;Howard&#039;&#039;&#039; ) 13-year-old human son of Bridget and Stefane. Fascinated by his namesake, Howard. (b3c54) Celebrates his 75th birthday with family and Riker.&lt;br /&gt;
&lt;br /&gt;
; Hugh&lt;br /&gt;
: (b4p1c9) A Skipper of the Singularity Project.&lt;br /&gt;
&lt;br /&gt;
; Hungry&lt;br /&gt;
: (b2c13) Created by Mario on May 2180 in Gliese 54. Their name is an obtuse reference to the dwarves of &#039;&#039;[[Snow White]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Julia Hendricks&lt;br /&gt;
: (b1c38) Descendant of one of Bob&#039;s sisters. Mother of Justin Hendriks. (b3c54) Celebrates 75th birthday with Uncle Will.&lt;br /&gt;
&lt;br /&gt;
; Justin Hendriks&lt;br /&gt;
: (b1c54) Son of Julia.&lt;br /&gt;
&lt;br /&gt;
; Katsu Ito&lt;br /&gt;
: (b3c18) Leader of the Japanese enclave carried by Mack to colonize [[82 Eridani]].&lt;br /&gt;
&lt;br /&gt;
; Kiroshi, General&lt;br /&gt;
: (b3c25) Military leader of Takama, the Japanese colony at [[82 Eridani]] during the Medeiros attack.&lt;br /&gt;
&lt;br /&gt;
; Landers, Dr.&lt;br /&gt;
: (b1c2) An employee of Applied Synergetics Inc. that guides Bob following his creation from the frozen brain of Robert Johansson. (b1c11) Supervisor of Dr. Doucette. (b1c13) Killed during the global war on Earth that wiped out most humans.&lt;br /&gt;
&lt;br /&gt;
; Lianne&lt;br /&gt;
: (b2c69) Daughter of Bridget and Stefane.&lt;br /&gt;
&lt;br /&gt;
; Linus&lt;br /&gt;
: (b1) A Bob created in Epsilon Eridani who chooses to explore. (b1c40) Discovers a failed Australian replicant probe in Epsilon Indi named Henry Roberts.&lt;br /&gt;
&lt;br /&gt;
; Luke&lt;br /&gt;
: (b1c39) Departs from Delta Eridani for [[Kappa Ceti]].&lt;br /&gt;
&lt;br /&gt;
; Mack &lt;br /&gt;
: (b3c18) A Bob who brings colonists from Vancouver Island and Japan to 82 Eridani. (b3c20) Shot offline by Medeiros in a sneak attack in 82 Eridani. (b23c30) [[Bobiverse/Book 3, full text (2017)/Chapter 30#mack-awake|Restarted]] after Medeiros is defeated.&lt;br /&gt;
&lt;br /&gt;
; Mario&lt;br /&gt;
: (b1c57) Finds evidence of genocide in Beta Hydri. (b2c10) Finds evidence of genocide in Zeta Tucanae.&lt;br /&gt;
&lt;br /&gt;
; Marvin&lt;br /&gt;
: (b1c39) Stays behind to help Bob protect the Deltans as Luke and Bender depart Delta Eridani. (b2c24) Drops Bob&#039;s Sky God project in [[Delta Eridani]] and heads to [[Pi³ Orionis]].&lt;br /&gt;
&lt;br /&gt;
; Medeiros&lt;br /&gt;
: (B1) A brazillian military officer replicant. (B1c28) Mostly defeated at Alpha Centauri by Calvin and Goku. (B3c21) Attacks and disables Mack at [[82 Eridani]] in order to capture printers.&lt;br /&gt;
&lt;br /&gt;
; Milo&lt;br /&gt;
: (b1) A bob that discovers and names Vulcan and Romulus in [[Omicron² Eridani]]. (B1c46) is killed by missiles while exploring [[82 Eridani]].&lt;br /&gt;
&lt;br /&gt;
; Motorola&lt;br /&gt;
: (b4p1c34) An alias for Bender.&lt;br /&gt;
&lt;br /&gt;
; Natasha&lt;br /&gt;
: (b4p1c34; a.k.a. &#039;&#039;&#039;ko Hoina, Madame&#039;&#039;&#039;) Quinlan aristocrat supporting the Resistance. (b4p1c32) Pays Freida to capture Bob.&lt;br /&gt;
&lt;br /&gt;
; Neil&lt;br /&gt;
: (b3c22) A Bob who, along with Herschel, covertly examine an Other wreck in the Kuiper Belt of Delta Pavonis.&lt;br /&gt;
&lt;br /&gt;
; Others&lt;br /&gt;
: (b1c57) Mario finds evidence of genocide in Beta Hydri by an unknown group that absconded with 99% of planetary fauna biomass and asteroid and planetary surface metals. Mario discovers their metal-collecting ants are powered by SUDDAR scan radiation.  (b2c10) Mario finds evidence of genocide by Others in Zeta Tucanae. (b2c55) Establish audio communication in Mandarin with Bill at GL 54.  They show no remorse for the genocide of Zeta Tucanae. They notify Bill of their plans to harvest resources from Sol and Epsilon Eridani.  (b3c60) Their invasion fleet is detected en route to Earth. Attacked by Bobs in a surprise attack.&lt;br /&gt;
&lt;br /&gt;
; quinlans&lt;br /&gt;
: (b4p1c12) Name the inhabitants of Heaven&#039;s River call themselves. Term discovered by the Skippies via surreptitious surveillance of acoustic data gleaned from the megastructure at the Quinlan megastructure in Eta Leporis.&lt;br /&gt;
&lt;br /&gt;
; raptors&lt;br /&gt;
: (B2) A predator of Vulcan resembling velociraptors that threatens Landing colonists.&lt;br /&gt;
&lt;br /&gt;
; Richards, Captain&lt;br /&gt;
: (b3c25) Asgard military leader. Tells Bill about how Mack delegted mosquito killer production to Asgard colonists, allowing them to repurpose them for planetary defense against Medeiros.&lt;br /&gt;
&lt;br /&gt;
; Riker&lt;br /&gt;
: (b1; a.k.a. &#039;&#039;&#039;Will&#039;&#039;&#039;, &#039;&#039;&#039;William&#039;&#039;&#039;) The second replicate Bob ever created. Returns to Sol system after first Bob settles Epsilon Eridani. Leads the evacuation effort of Earth, assisted by Homer. (b158) Successfully leads effort to build Exodus-1 and Exodus-2 to evacuate USE survivors from Earth. (b3c54) Attends the 75th birthday of Howie, son of Julia Hendricks. (b3c58) Tells Herschel that he now goes by the name &#039;&#039;&#039;Will&#039;&#039;&#039; in order to dissociate himself with &#039;&#039;[[Star Trek]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Rosie&lt;br /&gt;
: (b2c69) Daughter of Bridget and Stefane. (B3; a.k.a. Lianne)&lt;br /&gt;
&lt;br /&gt;
; Sharma, Minister&lt;br /&gt;
: (b2c18) [[Maldives]] minister. Defends Riker against bigotry against replicants from New Zealand Minister Gerrold.&lt;br /&gt;
&lt;br /&gt;
; Sheehy, Dr.&lt;br /&gt;
: See &#039;&#039;Bridget Sheehy&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; Skippies&lt;br /&gt;
: (b4p1c5) Bobs who have dedicated themselves towards building a technological [[singularity]].&lt;br /&gt;
&lt;br /&gt;
; Sleepy&lt;br /&gt;
: (b2c13) Created by Mario on May 2180 in Gliese 54. Their name is a reference to the dwarves of &#039;&#039;[[Snow White]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Spits&lt;br /&gt;
: (b1c33) Inhabitants of [[Svalbard|Spitsburgen Island]], led by Gudmund Valter. Are in possession of the [[Svalbard Global Seed Vault]] and the Svalbard Global Genetic Diversity Vault which they hold hostage as leverage against Riker to get a more favorable position in the evacuation queue.&lt;br /&gt;
&lt;br /&gt;
; Snarks&lt;br /&gt;
: (b4) See &#039;&#039;&#039;Quinlan&#039;&#039;&#039;. (b4p1c8) Tentative name by Garfield for the inhabitants of the Eta Leporis megastructure. (b4p2c12) Determined by the Skippies to call themselves “Quinlans”.&lt;br /&gt;
&lt;br /&gt;
; Snidely Whiplash (Quinlan)&lt;br /&gt;
: (b4p2c16) A noble Quinlan with a business degree from the University of Peachland who boards the &#039;&#039;Hurricane&#039;&#039;. (b4p2c16) Fails to accuse Enoki Funguy of being the wanted quinlan carrying the funerary box.&lt;br /&gt;
&lt;br /&gt;
; Stéphane&lt;br /&gt;
: (b2c16) Leader of a group of raptor hunters on Vulcan.&lt;br /&gt;
&lt;br /&gt;
; Steven Gilligan, Professor&lt;br /&gt;
: (b4p1c16) A replicant former department chair at the University of Landing on Vulcan that Will visits at the Vulcan Post-Life Arcology. An expert in artificial habitats whose insights Will desires regarding the Quinlan megasteucture at Eta Leporis.&lt;br /&gt;
&lt;br /&gt;
; Theresa&lt;br /&gt;
: (b4p2c16) An elderly Quinlan traveling with her granddaughter Belinda who boards the &#039;&#039;Hurricane&#039;&#039;. Berates the businessman Snidely Whiplash using her status as former faculty of the University of Peachland. (b4p2c18) Debates [[moral philosophy]] with the boat crew and Bob. Discerns Bob&#039;s alien nature but trusts in their moral character. (b4p2c20; a.k.a. &#039;&#039;&#039;Theresa Sykorski&#039;&#039;&#039;) Covers for Bob in order to protect his cargo from Quinlan inspection.&lt;br /&gt;
&lt;br /&gt;
; VEHEMENT&lt;br /&gt;
: (b1c38) Earth survivors rebelling against Riker&#039;s rule. (b2; a.k.a. &#039;&#039;&#039;Voluntary Extinction of Human Existence Means Earthʼs Natural Transformation&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
; Will&lt;br /&gt;
: See &#039;&#039;&#039;Riker&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; 82 Eridani&lt;br /&gt;
: (b1c46) A star system with two habitable worlds discovered by Milo. Milo is killed by missiles soon after arriving into orbit around one of the worlds. (b1c60) Khan arrives with a retaliation fleet. (b3c18) Mack arrives with Vancouver Island and Japan colonists.&lt;br /&gt;
&lt;br /&gt;
; [[Alpha Centauri]]&lt;br /&gt;
: The nearest star system to Earth. (b1c22) Destination for Calvin and Goku after departing Epsilon Eridani in September 2150. (b1c28) Visited by Calvin and Goku in November 2163.&lt;br /&gt;
&lt;br /&gt;
; Augsburg, Germany&lt;br /&gt;
: A gathering place for some Earth survivors. Gathering place for USE survivors.&lt;br /&gt;
&lt;br /&gt;
; Aszjan&lt;br /&gt;
: (b2c77, a.k.a. &#039;&#039;&#039;Delta Pavonis 4&#039;&#039;&#039;, &#039;&#039;&#039;DP-4&#039;&#039;&#039;) Home planet of the Pavs. (b2c77) is sterilized and strip mined by the Others of metal.&lt;br /&gt;
&lt;br /&gt;
; Beetle Juice&lt;br /&gt;
: (b4p2c16) A Quinlan town along the Nirvana River. Where Snidely Whiplash protests a cargo inspection that Enoki takes advantage of.&lt;br /&gt;
&lt;br /&gt;
; Beta Hydri&lt;br /&gt;
: (b1c57) A star system explored by Mario. Scoured clean of easily-accessible metal. Habitable planets show signs of violent and rapid sterilization via [[gamma ray burst]]s.&lt;br /&gt;
&lt;br /&gt;
; Delta Eridani&lt;br /&gt;
: (b1) A star system explored by Bob. (b1c?) Home of the Deltons that Bob and Marvin help survive.&lt;br /&gt;
&lt;br /&gt;
; Delta Pavonis&lt;br /&gt;
: (b2) Home star system of the Pavs.&lt;br /&gt;
&lt;br /&gt;
; Delta Pavonis 4&lt;br /&gt;
: See &#039;&#039;&#039;Aszjan&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; Earth&lt;br /&gt;
: (b1) The original planet of humans and the Bobs.&lt;br /&gt;
&lt;br /&gt;
; Eden&lt;br /&gt;
: (b1c30; a.k.a. &#039;&#039;&#039;Delta Eridani 4&#039;&#039;&#039;) The planet of the Deltans. Named by Bender.&lt;br /&gt;
&lt;br /&gt;
; Epsilon Indi&lt;br /&gt;
: (b1c40) A system where Australian replicant Henry Roberts arrived and went insane. (b2c46) Rudy and Edwin arrive with colonists for KKP, the habitable terrestrial. (b3c62) The system&#039;s jovian, Big Top, is now inhabited by 1 million people in Howard and Bridgetʼs floating city Tantor.&lt;br /&gt;
&lt;br /&gt;
; Eta Leporis&lt;br /&gt;
: (b4p1c2) A star system with a megastructure and hostile drones (see &#039;&#039;&#039;Boojums&#039;&#039;&#039;) that Bob found likely captured Bender.&lt;br /&gt;
&lt;br /&gt;
; Forest Hill&lt;br /&gt;
: (b4p2c14) A town asking the Nirvana River near the spoke opposite that of Halep’s Ending. &lt;br /&gt;
&lt;br /&gt;
; Galen Town &lt;br /&gt;
: (b4p1c21) The second settlement Bob, Bill, Garfield, and Bridget visit on Heaven&#039;s River.&lt;br /&gt;
&lt;br /&gt;
; Garack’s Spine&lt;br /&gt;
: (b4p1c21) The first settlement Bob, Bill, Garfield, and Bridget visit on Heaven&#039;s River.&lt;br /&gt;
&lt;br /&gt;
; Gliese 54&lt;br /&gt;
: (b2c54; a.k.a. &#039;&#039;&#039;GL 54&#039;&#039;&#039; ) Bill tells Hal that Others are headed from GL 877 to GL 54.&lt;br /&gt;
&lt;br /&gt;
; Gliese 877&lt;br /&gt;
: (b2c53; a.k.a. &#039;&#039;&#039;GL 877&#039;&#039;&#039;) Hal tests Zapper shielding and succeeds.&lt;br /&gt;
&lt;br /&gt;
; [[HIP 14101]]&lt;br /&gt;
: (b2c67) Howard arrives after departing Vulcan, Omicron² Eridani following Bridgetʼs marriage to Stéphane Brodeur. (b3c20) Howard discovers life in the largest jovian at the border of the habitable zone which he calls Odin.&lt;br /&gt;
&lt;br /&gt;
; Landing&lt;br /&gt;
: (b2) Primary settlement on Vulcan.&lt;br /&gt;
&lt;br /&gt;
; [[40 Eridani|Omicron&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Eridani]]&lt;br /&gt;
: (b1) Star system explored by Milo. Contains the twin habitable planets discovered by Milo: Vulcan and Romulus. (b1c59) Is the destination for the USE colonists from Earth aboard &#039;&#039;Exodus-1&#039;&#039; and &#039;&#039;Exodus-2&#039;&#039; built by Riker, Homer, Arnold, and Ralph.&lt;br /&gt;
&lt;br /&gt;
; Misty Falls&lt;br /&gt;
: (b4p2c20) Disembarking point for Enoki, Theresa, and Belinda.&lt;br /&gt;
&lt;br /&gt;
; Odin&lt;br /&gt;
: (b3c20) A jovian of [[HIP 14101]]. Howard discovers floating life that he uses to entice Bridget into replicating.&lt;br /&gt;
&lt;br /&gt;
; Okinawa&lt;br /&gt;
: (b1c33) A gathering place for some Earth survivors.&lt;br /&gt;
&lt;br /&gt;
; Poseidon&lt;br /&gt;
: (b4p1c20) Security systems protecting the mats have created a new ecosystem free of large predators such as the leviathan.&lt;br /&gt;
&lt;br /&gt;
; Quin&lt;br /&gt;
: (b4p1c14) A term Bridget coins for the radioactive wasteland that is the Quinlan home planet in Eta Leporis.&lt;br /&gt;
&lt;br /&gt;
; Romulus&lt;br /&gt;
: (b1c19) The smaller of two habitable twin planets (0.7 M⊕) discovered and named by Milo in July 2152. Its larger twin is Vulcan. Romulus has less [[carbon dioxide]], a thinner atmosphere, a lower surface temperature, ice caps, and a sparse ecosystem with no fauna larger than a wolf. Milo believes the planet may have recently suffered a major extinction event.&lt;br /&gt;
&lt;br /&gt;
; San Diego&lt;br /&gt;
: (b1c33) A gathering place for some Earth survivors, mostly FAITH.&lt;br /&gt;
&lt;br /&gt;
; Sol&lt;br /&gt;
: (b1) The original star system of humans and the Bobs.&lt;br /&gt;
&lt;br /&gt;
; [[Svalbard|Spitsburgen Island]]&lt;br /&gt;
: An archipelago north of [[Norway]] between the [[Arctic Ocean|Arctic]] and [[Atlantic Ocean]]. (b1c33) A gathering place for some Earth survivors (a.k.a. &#039;&#039;&#039;Spits&#039;&#039;&#039;). Location of the [[Svalbard Global Seed Vault]] and associated Svalbard Global Genetic Diversity Vault.&lt;br /&gt;
&lt;br /&gt;
; Tantor&lt;br /&gt;
: (b3c62) A floating city in the atmosphere of Epsilon Indiʼs jovian, Big Top. City construction was facilitated by Howard and Bridget who tested the prototype &#039;&#039;Rivendell&#039;&#039; in [[HIP 14101]]ʼs jovian, Odin. Inhabited by 1 million people.&lt;br /&gt;
&lt;br /&gt;
; Vulcan&lt;br /&gt;
: (b1c19; a.k.a. &#039;&#039;&#039;OE-1A&#039;&#039;&#039;) The larger of two habitable twin planets (0.9 M⊕) discovered and named by Milo in July 2152. Its smaller twin is Romulus. Vulcan has more [[carbon dioxide]], a thicker atmosphere, and warmer surface temperature. Has a robust ecosystem with large fauna. (b1c61) Colonel Butterworth chooses this planet for USE evacuees aboard the Exodus-1 and Exodus-2 to settle.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; AMI&lt;br /&gt;
: (b1c2; a.k.a. &#039;&#039;&#039;artificial machine intelligence&#039;&#039;&#039;) A thinking machine not derived from a scanned human mind as a replicant is. Lacks creative and improvisation abilities compared to flesh humans or replicants.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Exodus-1&#039;&#039;&lt;br /&gt;
: (b1c54) One of the first two ships built by Riker, Homer, Arthur, and Ralph for the survivors of Earth.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Exodus-2&#039;&#039;&lt;br /&gt;
: (b1c54) One of the first two ships built by Riker, Homer, Arthur, and Ralph for the survivors of Earth.&lt;br /&gt;
&lt;br /&gt;
; GUPPI&lt;br /&gt;
: (b1; a.k.a. &#039;&#039;&#039;Guppy&#039;&#039;&#039;, &#039;&#039;&#039;General Unit Primary Peripheral Interface&#039;&#039;&#039;) An AMI assistant provided to Bob by Landers. (b1c13) Modified by Bob to resemble [[Admiral Ackbar]] from [[Star Wars]]. (b2) &lt;br /&gt;
&lt;br /&gt;
; HEAVEN&lt;br /&gt;
: (b1; a.k.a. &#039;&#039;&#039;Habitable Earths Abiogenic Vessel Exploration Network&#039;&#039;&#039;) FAITHʼs interstellar von Neumann probe project.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Heaven-1&#039;&#039;&lt;br /&gt;
: (b1c12) The HEAVEN space ship built by FAITH that is Bob&#039;s body for his journey from Earth.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Hulk-1&#039;&#039;&lt;br /&gt;
: (b3c24) An Other carrier wreck in Delta Pavonis that Herschel and Neil examine.&lt;br /&gt;
&lt;br /&gt;
; Hurricane&lt;br /&gt;
: (b4p2) A Quinlan watercraft Bob rides.&lt;br /&gt;
&lt;br /&gt;
; kraken&lt;br /&gt;
: (b2c49) An aquatic predator of Poseidon (Eta Cassiopeiae). (b2c49) Regularly eats settlers from floating mats, prompting development of flying cities.&lt;br /&gt;
&lt;br /&gt;
; replicant&lt;br /&gt;
: (b1c2) A thinking machine that emulates a biological human brain derived from a nerve tissue scanning process.&lt;br /&gt;
&lt;br /&gt;
; roamer&lt;br /&gt;
: (b1c3) An AMI-controlled drone capable of assembling and repairing machinery with a wide assortment of tools.&lt;br /&gt;
&lt;br /&gt;
; SCUT&lt;br /&gt;
: (b1c25) A faster-than-light communications device created by Bill. (b2; a.k.a. &#039;&#039;&#039;Subspace Communications Universal Transceiver&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
; SUDDAR&lt;br /&gt;
: (b1c7) A scanning technology capable of remotely resolving the shape of physical objects. Basically, space radar. (b2; a.k.a. &#039;&#039;&#039;Subspace Deformation Detection and Ranging&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
; SURGE drive&lt;br /&gt;
: (b1c7) A device that warps space to enable slower-than-light relativistic interstellar mass transport. Generates no reaction mass plume. (b2; a.k.a. &#039;&#039;&#039;Subspace Reactionless Geotactic Emulation&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
; Zapper&lt;br /&gt;
: (b2c53) Hal successfully proves Zapper shielding is effective in Gliese 877.&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
====[[/b1|Book 1: We Are Legion]]====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 1: &#039;&#039;[[We Are Legion (book)|We Are Legion]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| [[/b1/p1/c1|p1c1]]&lt;br /&gt;
| Bob Version 1.0&lt;br /&gt;
| Bob attends two seminars about space exploration and [[Von Neumann Replicator]]s at a science fiction convention. Bob calls his mother and talks to his sister. Bob is struck by an automobile and killed. &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p1c2&lt;br /&gt;
| Bob Version 2.0&lt;br /&gt;
| Bob wakes up 117 years later as a machine intelligence owned by FAITH, their flesh and blood brain destructively scanned in order to create a candidate artificial intelligence slave.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c3&lt;br /&gt;
| Bob – June 25, 2133&lt;br /&gt;
| Bob controls some roamers (robotic spiders) to stack some blocks.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c4&lt;br /&gt;
| Bob – July 15, 2133&lt;br /&gt;
| Bob learns the internet is no longer a thing in FAITH. Information is now hidden or inaccessible by default. Bob resolves to find freedom someway somehow.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p1c5&lt;br /&gt;
| Bob – July 18, 2133&lt;br /&gt;
| A surprise visit from Minister Travis of the ministry of Truth. Bob is given access to a space, station management, simulation and information library.&lt;br /&gt;
| Bob, Landers, Travis&lt;br /&gt;
|-&lt;br /&gt;
| p1c6&lt;br /&gt;
| Bob – July 19, 2133&lt;br /&gt;
| Bob learns to manage AMI controlled roamers in order to affect repairs on equipment such as 3D printers. Bob learns from Landers that his purpose is to be a manager of a [[von Neumann probe]] expedition into space. &lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c7&lt;br /&gt;
| Bob – July 25, 2133&lt;br /&gt;
| Dr. Landers explains to Bob the scope and progress of other rival political blocks of United States of Eurasia, the Brazilian group, the African Republic, and the Australian group. As far as their own private von Neumann exploration projects are concerned. China is likely to be fastest, but relying entirely upon AMIs. Brazil is likely to rely upon sabotage of other projects and the USE is most likely to colonize a star system once found. Additionally, Landers talks about the subspace drive technology that allows faster than light mass transport across interstellary distances.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c8&lt;br /&gt;
| Bob – August 4, 2133&lt;br /&gt;
| Bob aids in the defense of the research complex in which he is housed. Upon subdoing the black-clothed invaders, Landers asks Bob to retreat his roamers back into the training area. Landers tells Bob there is a tactical nuke installed beneath the training facility as a safeguard against Bob gaining freedom. Bob makes a crack about the &#039;&#039;[[Andromeda Strain]]&#039;&#039;, a [[Michael Crichton]] novel. With a single roamer drone that was able to hide in the air ducts of the facility during the battle, Bob is able to build a 3D map of the facility surrounds and concludes that no such tactical nuke is present. Bob discovers the room housing the computers for himself and the four other candidates; Kenneth is his remaining competitor.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c9&lt;br /&gt;
| Bob – August 6, 2133&lt;br /&gt;
| Bob witnesses a confrontation by FAITH Minister Jacoby against Landers using wall vibrations via a roamer bot.&lt;br /&gt;
| Bob, Landers, Jacoby&lt;br /&gt;
|-&lt;br /&gt;
| p1c10&lt;br /&gt;
| Bob – August 10, 2133&lt;br /&gt;
| Bob wakes up with a week-long Gap in his memory. Landers tells Bob that a bomb destroyed the matrices storing his mind and that Bob had been destroyed and then recreated from backups. Bob thinks about his own existence and what defines life. {{bkc|Life is defined by others asserting that you are alive across time and space. Life is the degree to which others believe that you are alive and have a relationship with you asserting as much. The same can be said for personhood as well. Integration across time and articulation across space is what defines life.}} Landers informs Bob that the only other replicant competitor candidate has been decommissioned. Bob concludes that Kenneth the other only living replicants cube that he saw in the room has not been deactivated since now. Bob is running on Kennethʼs old hardware. Bob and frantically distracts Landers after mentioning Kennethʼs name. Landers informs Bob that launch is in a month and can be accelerated if need be. Landers tells Bob that they are now going to be awake continuously, save for short sleep periods required for backups so that Bob can help assist with the project.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c11&lt;br /&gt;
| Bob – August 15, 2133&lt;br /&gt;
| Bob chats with Dr. Doucette, a beautiful substitute for Landers.  Bob learns of software enforcement of his mission.&lt;br /&gt;
| Bob, Doucette&lt;br /&gt;
|-&lt;br /&gt;
| p1c12&lt;br /&gt;
| Bob – August 17, 2133&lt;br /&gt;
| Landers awakens Bob after another attack that has fatally wounded more staff. Landers gives Bob a file with not only new training objectives but also access keys to bypass and disable software restrictions that would enslave Bob. Bob awakens on launch day in their ship, commanding the entire vessel. &lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p1c13&lt;br /&gt;
| Bob – August 17, 2133 – En Route&lt;br /&gt;
| Bob prepares to launch his spaceship, frame jacking his perception of time in order to read up on his mission objectives and training information. Landers begins a radio transmission to Bob, warning him of a missile strike. Upon hearing the word “missile”, before Landers can finish their sentence, Bob searches his sensors and detects two oncoming missiles. Bob immediately launches from his dock. Bob launches two mining drones to act as makeshift chaffe. Bob succeeds in destroying one missile; the other missile strikes the station he was docked at. A naval engagement among several space-faring factions surround the station as Bob departs. &amp;lt;br/&amp;gt; Bob defuses his software self-destruct traps. Bob finally learns of a Brazilian probe, likely hostile, headed his way also to Epsilon Eridani. Bob reviews plans for the remaining 145-ish days left until encounter.  Bob learns Landers was killed in the Earth war. Bob finishes Spike (his VR cat), Jeeves (a butler), and Guppy (GUPPI). Bob disables his endocrine system restrictions and breaks down emotionally at losing his family. Guppy informs Bob of many nuclear detonations on Earth. Bob concludes he will not receive any help.&lt;br /&gt;
| Bob, Landers&lt;br /&gt;
|-&lt;br /&gt;
| p2c14&lt;br /&gt;
| Bob – August 2144 – Epsilon Eridani&lt;br /&gt;
| Bob enters the [[Epsilon Eridani]] system. Bob reviews plans for encounter with Brazilian probe. Bob concludes that ideal plan is to appear ignorant, receive first shot, play possum, then counter-attack. Bob decides the best course of action is to destroy Brazilian probe outright rather than to engage in protracted long-term battle. Bob begins deploying factory resources to execute plan. &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c15&lt;br /&gt;
| Bob – September 2144 – Epsilon Eridani&lt;br /&gt;
| Bob encounters the Brazilian probe and fights. Bob deploys his scheme and ultimately wins the battle, thanks to the Brazilian ship favoring torpedo count at the expense of upgrading ship capabilities to adapt to changing battle conditions. In other words, Bob won due to the Brazilian ship having only four missiles.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c16&lt;br /&gt;
| Bob – September 2144 – Epsilon Eridani&lt;br /&gt;
| Bob surveys planets of Epsilon Eridani. Bob finally gives in to Guppyʼs insistence on replicating. Bob orders the creation of more Bobs.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c17&lt;br /&gt;
| Bob – July 2145 – Epsilon Eridani&lt;br /&gt;
| Bob initializes more Bobs. A Bob wakes up to find they are a copy. Original Bob holds a meeting among Bobs: Bob-2 is Riker. Riker wishes to visit Earth again. Milo wants to avoid Earth and any hostile probe. Riker and Milo butt heads. Mario is quiet. Bill is most amenable to Bob but prefers research rather than exploration.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c18&lt;br /&gt;
| Bill – September 2145 – Epsilon Eridani&lt;br /&gt;
| Bill watches Bob, Mario, and Milo leave Epsilon Eridani. Riker plans to build a clone to return to visit Earth. Bob is traveling to Delta Eridani. Anti-social Mario is headed to Beta-Hydri.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c19&lt;br /&gt;
| Milo – July 2152 – Omicron² Eridani&lt;br /&gt;
| Milo discovers life at Omicron² Eridani on a binary pair of planets. Milo names them Vulcan and Romulus.&lt;br /&gt;
| Milo&lt;br /&gt;
|-&lt;br /&gt;
| p2c20&lt;br /&gt;
| Bill – December 2145 – Epsilon Eridani&lt;br /&gt;
| Bill and his clone, Garfield, bid farewell to Riker and Riker&#039;s clone, Homer. &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c21&lt;br /&gt;
| Riker – January 2157 – Sol&lt;br /&gt;
| Riker and Homer perform reconnaissance and surveillance on the Sol system. Riker and Homer witness a Brazilian ship destroy a decoy ship. Homer discovers that the Brazilian ships are dropping asteroids upon China.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c22&lt;br /&gt;
| Bill – September 2150 – Epsilon Eridani&lt;br /&gt;
| Bill and Garfield bid farewell to Goku, Linus, and Calvin. Calvin and Goku were inseparable but also constantly fighting. Bill and Garfield equipped Calvin and Goku with a ship with cloaking ability, fighting ability, and strong engines to coast undetected. Bill and Garfield note that Calvin and Goku would likely find hostile encounters at their destination of [[Alpha Centauri]]. &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c23&lt;br /&gt;
| Milo – February 2153 – Omicron² Eridani&lt;br /&gt;
| Milo is in Omicron² Eridani. Milo decides not to duplicate itself and instead decides to move on towards [[82 Eridani]]. Milo sends a report back to Bill and proceeds to travel to a new star system.&lt;br /&gt;
| Milo&lt;br /&gt;
|-&lt;br /&gt;
| p2c24&lt;br /&gt;
| Riker – April 2157 – Sol&lt;br /&gt;
| Riker and Homer combat the six Brazillian ships. Riker and Homer destroy four Brazilians behind the Sun. Riker and Homer go silent until they reach Earth and use it to hide their presence from the remaining two Brazilians. Riker and Homer confront the remaining two Brazilians. Homer is struck silent while Riker maneuvers to destroy the last Brazilian ship.&lt;br /&gt;
: Riker deflects the several [[Chicxulub crater|Chicxulub]]-scale asteroids the Brazilian space force had intended to use in retaliation against all Earth life for the destruction of [[Brasil]]. Riker found the Brazilian ships had been left without factories or shuttles to rebuild their forces or even occupy Earth.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c25&lt;br /&gt;
| Bill – September 2151 – Epsilon Eridani&lt;br /&gt;
| Bill and Garfield test out [[faster-than-light]] communications. Bill and Garfield plan to deploy IPv8 internet. Bill and Garfield determine that a communication node is required at least every 25 light years. Bill and Garfield decide to transmit plans for the the FTL communications to the other Bobs.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c26&lt;br /&gt;
| Riker – April 2157 – Sol&lt;br /&gt;
| Riker discusses logistics for the recovery of human life on Earth. USE Colonel Butterworth tells Riker that the human population has been reduced to several tens of millions of people. Butterworth tells Riker that the global war that occurred was hard-fought and that the last resilient space force remnants were the small survivors of a much larger conflict, but that their ability to drop rocks from space allowed them to massacre billions of lives at the end. Colonel Butterworth asks Riker for help in migrating the survivors to another habitable world since Earth&#039;s habitability will not recover for at least another 5 to 10 000 years. Riker tells Butterworth that the habitability of candidate destination planets has not yet been transmitted to him from Bill that in a few years information may be available. &lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c27&lt;br /&gt;
| Bob – April 2165 – Delta Eridani&lt;br /&gt;
| Bob arrives at Delta Eridani. Bob discovers an oxygen atmosphere around one planet. Bob discovers fire-using individuals, likely intelligent species on one of the planets. Bob proposes first contact via a roamer but Guppy shoots down the idea since roamers are not ideal for terrestrial exploration. &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c28&lt;br /&gt;
| Calvin – November 2163 – Alpha Centauri&lt;br /&gt;
| Calvin finds the wreckage of the USE probe at Alpha Centauri B. Calvin and Goku fight Medeiros at Alpha Centauri A, destroying all but one of his probes which escapes.&lt;br /&gt;
| Calvin, Goku&lt;br /&gt;
|-&lt;br /&gt;
| p2c29&lt;br /&gt;
| Riker – September 2157 – Sol&lt;br /&gt;
| Riker and Butterworth argue about priorities for rescuing the survivors on Earth. Riker believes that prioritizing logistics for creating the colony ship should not impede a search for survivors. Butterworth argues that all resources should be dedicated towards helping USE survivors at the expense of all other Earth inhabitants. Riker and Homer discover undestroyed stations in the Oort Cloud and outer solar system which may be useful for building colony ships. Riker muses about responsibility for ensuring the survival of humanity in the solar system.&lt;br /&gt;
| Riker, Butterworth, Homer&lt;br /&gt;
|-&lt;br /&gt;
| p2c30&lt;br /&gt;
| Bob – April 2165 – Delta Eridani&lt;br /&gt;
| Bob surveils a tribe of Deltans, “Deltan” is the name that Bob has come up for the fire-using inhabitants he found on Delta Eridani 4. Bob watches in particular a single Delton that he has labeled Archimedes due to Archimedes having constructed knife blade with a handle tied to it. A technology unique apparently to deltas, particularly one Delta Archimedes. Bob watches Archimedes with the help of other box that he has commissioned for the help of surveilling the planet including Luke Bender and others. &lt;br /&gt;
| Bob, Archimedes&lt;br /&gt;
|-&lt;br /&gt;
| p2c31&lt;br /&gt;
| Riker – January 2158 – Sol&lt;br /&gt;
| Riker sees his plan encounter delays for constructing the evacuation ships for survivors of Earth. Arthur, a Bob clone of Riker, has found difficulty contacting surviving enclaves due to ongoing hostility from the war. Homer reports to Arthur that enough supplies exist to construct three colony ships for evacuation.&lt;br /&gt;
| Riker, Arthur&lt;br /&gt;
|-&lt;br /&gt;
| p2c32&lt;br /&gt;
| Bill – October 2158 – Epsilon Eridani&lt;br /&gt;
| In Epsilon Eridani, Bill and Garfield receive word from Milo about the twin habitable worlds Vulcan and Romulus. Bill estimates that it will be about 9 years until word of the habitable worlds can be passed to Earth. Bill feels like a shepherd for humanity. &lt;br /&gt;
| Bill, Garfield&lt;br /&gt;
|-&lt;br /&gt;
| p2c33&lt;br /&gt;
| Riker – March 2158 – Sol&lt;br /&gt;
| Riker performs diplomacy with representatives of the survivors of Earth. Riker mishandles the initial meeting with little empathy for the survivors. Homer talks Riker into by recognizing them as passengers who know their fate is being decided by others and wish to have some level of agency in their fate. Riker holds talks with individual leaders. Riker talks with the Spits, survivors who are in physical possession of the Svalbard Global Seed Vault which they threaten to destroy if their group of roughly 4,000 were not prioritized. &lt;br /&gt;
| Riker, Homer&lt;br /&gt;
|-&lt;br /&gt;
| p2c34&lt;br /&gt;
| Homer – September 2158 – Sol&lt;br /&gt;
| Homer talks to himself about Rikerʼs arrogant tyrannical attitude towards others. Homer is amazed that Riker has still not yet recognized that, he Homer, is attempting to ridicule Riker with his cartoon Homer act. Homer anticipates that Riker will perform poorly regarding the evacuation efforts. Homer sees a way to diplomatically smooth evacuation efforts by bumping up the evacuation of certain groups while not affecting the schedule. Homer decides to discuss this possibility with Colonel Butterworth behind Rikerʼs back.&lt;br /&gt;
| Homer&lt;br /&gt;
|-&lt;br /&gt;
| p2c35&lt;br /&gt;
| Bob – July 2165 – Delta Eridani&lt;br /&gt;
| Bob witnesses Deltans killed by Gorilloids. Bob debates with other Bobs the ethics of assisting the Deltans. Bob surveils Deltans and encourages their technological development by providing one Deltan he has named Archimedes with flint nodules. Archimedes produces weaponry for their fellow Deltans. The Deltans successfully repel the next gorilloid attack.&lt;br /&gt;
| Bob, Marvin, Bender, Luke&lt;br /&gt;
|-&lt;br /&gt;
| p2c36&lt;br /&gt;
| Riker – September 2158 – Sol&lt;br /&gt;
| Riker continues to hold meetings with survivors of Earth. Various factions attempts to lobby with Riker for preferential treatment but Riker shuts them all down hard. Colonel Butterworth proposes in private to Riker the possibility of allowing the group that holds control of the seed vault a position in one of the colony ships at the expense of delaying other colonies shipped in order to secure the the seed vault contents. FAITH attempts to hack Rikerʼs systems with a secret code that, before first Bob disabled their software traps, would have turned Riker into their slave. Riker shuts down talks with FAITH immediately.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c37&lt;br /&gt;
| Bob – August 2165 – Delta Eridani&lt;br /&gt;
| Bob notices a large gorilloid attack on the Deltans. Bob, Marvin, and company decide to deploy a drone to attack the gorilloids in a kinetic strike. Arnold learns to instantly kill gorilloids with an axe Archimedes made. A gorilloid is atomized. Archimedes begins digging up the metal attack drone crash site. Bob decides to guide the Deltans back to their old flint gathering site. Marvin decides to stay long term to guide the Deltans with Bob. Luke and Bender decide to move on to find a star system with their own project.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c38&lt;br /&gt;
| Riker – November 2158 – Sol&lt;br /&gt;
| FAITH holds hostage Bob&#039;s descendants. Riker recognizes the young woman that faith presents to him during a call as resembling Andrea, original Bob&#039;s sister. FAITH allows Riker and the young woman to freely talk while under surveillance.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c39&lt;br /&gt;
| Bob – October 2165 – Delta Eridani&lt;br /&gt;
| Bob bids farewell to Luke and Bender. Luke decides to travel to [[Kappa Ceti]] and Bender to [[Gamma Leporis A]]. Bob talks with Marvin about the ethics of copying themselves in order to favor psychologies that allow cooperation. Bob vows to help the Deltans develop. Archimedes experiments with the metal wreckage. Arnold continues to learn how to use the acts that Archimedes gave him.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c40&lt;br /&gt;
| Linus – April 2165 – Epsilon Indi&lt;br /&gt;
| Linus encounters the Australian probe that has gone insane. Linus extracts the replicant Henry Roberts and builds a realistic VR for them to live. Henry believes their time as a probe was a nightmare.&lt;br /&gt;
| Linus&lt;br /&gt;
|-&lt;br /&gt;
| p2c41&lt;br /&gt;
| Riker – May 2162 – Sol&lt;br /&gt;
| Riker breaks the news of the availability of Vulcan and Romulus to the Earth survivors. Riker threatens to withdraw all support if survivors continue to demand individual planets for themselves.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c42&lt;br /&gt;
| Bill – April 2162 – Epsilon Eridani&lt;br /&gt;
| Bill and Garfield butt heads about TODO list priorities. Bill decides to ease off on first Bob&#039;s declaration that most senior Bob has final say.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c43&lt;br /&gt;
| Riker – September 2164 – Sol&lt;br /&gt;
| Riker inspects the construction of colony ships. Riker thinks about metal scarcity. Homer has been assigned to bootstrap a metal gathering operation with printers. Riker, Homer, and Charles hold an all-Bobs meeting in Earth orbit. The Bobs brainstorm ideas for saving the Earthbound survivors: orbital mirrors to combat global cooling, moving people towards the equator, moon colonies, space stations.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c44&lt;br /&gt;
| Bob – January 2166 – Delta Eridani&lt;br /&gt;
| Bob makes Archimedes his Messiah. Bob orders the Deltans to return to a previous encampment site rich in flint.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c45&lt;br /&gt;
| Bill – January 2165 – Epsilon Eridani&lt;br /&gt;
| Bill receives word back from Bart who built the FTL communication array. Bart tells Bill that the Alpha Centauri systems that Calvin and Goku settled are building Bobs and gathering resources, but that Calvin and Goku have since moved on to explore more star systems. Bart informs Bill that the Brazilian ships that had been defeated by Calvin and Goku were all destroyed except one which got away. Bill is reassured that another Bob factory is in operation since Bill has not created new box in some time. &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| [[Bobiverse/Book 1, full text (2016)/Part 2/Chapter 46|p2c46]]&lt;br /&gt;
| Milo – August 2165 – 82 Eridani&lt;br /&gt;
| Milo explores  82 Eridani, a new star system, and finds two habitable planets. As Milo approaches and enters orbit around one of the habitable planets, he is fired upon by several missiles. Milo transmits a partial differential backup of his mind back to Bill at [[Epsilon Eridani]]. Milo deploys countermeasures and fights with his rail gun but is ultimately overwhelmed.&lt;br /&gt;
| Milo&lt;br /&gt;
|-&lt;br /&gt;
| p2c47&lt;br /&gt;
| Riker – January 2166 – Sol&lt;br /&gt;
| Riker talks with Homer about the evacuation effort. Arthur is killed by a nuclear bomb trap near Saturn.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c48&lt;br /&gt;
| Bob – May 2166 – Delta Eridani&lt;br /&gt;
| Bob governs the migration of the Deltans across a mountain pass. Several stray Delton communities join the main group.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c49&lt;br /&gt;
| Riker – May 2166 – Sol&lt;br /&gt;
| Homer proposes to Riker the idea of agricultural space stations that prioritize creating food in lieu of hosting living humans which have higher requirements to maintain. Riker proposes the agricultural space station idea to the survivors of Earth who generally reject the idea initially. Riker passes the idea through the representatives meeting by noting that the agricultural products of [[kudzu]] will prevent mass death due to starvation among most of the survivors on Earth. Rikerʼs GUPPI notes that a hacking attempt originating from New Zealand was deflected by Bob oneʼs firewall which could have compromised Rikerʼs mind. Riker meets with FAITH representative Cranston; Cranston proposes sharing FAITH food supplies with other nations in exchange for preferential treatment in in colonyship scheduling. Riker discusses the hacking attempt with Cranston; Cranston tells Riker that FAITH replicant technology was stolen via espionage from Australian researchers who pioneered the technology. Cranston believes the hack was performed by people of New Zealand where many Australian survivors fled to. Riker discusses the the idea of agricultural space stations Homer and Charles; The Bobs of Sol agree that Cranston&#039;s proposal is acceptable.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c50&lt;br /&gt;
| Bob – June 2166 – Delta Eridani&lt;br /&gt;
| A very large group of gorilloids attacks the Deltans that just made the trip across the mountains. Overall, the attack was repelled at the cost of many Deltan lives. Bob decides to devote resources towards printing printers and armaments of an explosive nature in order to combat future attacks. Bob, through Archimedes, recommends the settlement of the local area instead of completing the journey to the Flint rich area in order to capitalize upon the fear inflicted upon the gorilloites during the counter-attack. The Deltans accept Bob&#039;s plan.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c51&lt;br /&gt;
| Bill – January 2174 – Epsilon Eridani&lt;br /&gt;
| Bill receives Milo&#039;s final transmissions. Bill orders the creation of a retaliatory fleet.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c52&lt;br /&gt;
| Riker – January 2168 – Sol&lt;br /&gt;
| Homerʼs ranch donut project bears fruit: kudzu crops are successfully supplanting the diet of Earth survivors. Riker is congratulatory to Homer.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c53&lt;br /&gt;
| Bob – June 2166 – Delta Eridani&lt;br /&gt;
| The Deltans suffer an attack by a big cat. Bob begins teaching the Deltons medicine. The Deltons arrive at the flint site.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c54&lt;br /&gt;
| Riker – October 2170 – Sol&lt;br /&gt;
| Riker, Homer, Charles, and Ralph oversee the commissioning of Exodus-1 and Exodus-2.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c55&lt;br /&gt;
| Bob – July 2166 – Delta Eridani&lt;br /&gt;
| Bob discovers that the Deltans migrated away from the flint site due to proliferation in the local region of plants that the gorilloids ate. Deltans filled a protein hole in the gorilloid diet. Marvin shows Bob that the Deltans have begun worshiping “Bawb” by building shrines around wreckage of the buster machines used to automatically defend the Deltan camp perimeter from gorilloids.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| p2c56&lt;br /&gt;
| Bill - March 2167 - Epsilon Eridani&lt;br /&gt;
| Bill iterates on his android project. Latency and sensory processing problems persist.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c57&lt;br /&gt;
| Mario – August 2169 – Beta Hydri&lt;br /&gt;
| Mario arrives at Beta Hydri. Mario discovers the system almost completely devoid of easily-accessible metallic ore. Mario discovers signs of an artificial [[gamma ray burst]] used to instantly sterilize local planets of life. One of Marioʼs roamers opens a box containing small machines that begin disassembling the roamer. Mario discovers the small machines are powered by his own SUDDAR scans. Mario captures one of the small ant-like machines in plastic. Mario decides to fly back to inform the other Bobs of his discovery since he lacks metals to construct an FTL communication station.&lt;br /&gt;
| Mario&lt;br /&gt;
|-&lt;br /&gt;
| p2c58&lt;br /&gt;
| Riker – April 2171 – Sol&lt;br /&gt;
| Riker sees the launch of the first two colony ships depart Sol system with USE colonists, two Riker clones, and Howard, a recent Bob clone.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| p2c59&lt;br /&gt;
| Bill – May 2172 – Epsilon Eridani&lt;br /&gt;
| Bill holds the first Bob-moot in Epsilon Eridani. The colonists are en route to [[40 Eridani|Omicron² Eridani]].&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| p2c60&lt;br /&gt;
| Khan – April 2185 – 82 Eridani&lt;br /&gt;
| Khan leads 7 other Bobs to attack Medeiros in 82 Eridani. Khan is the only survivor. Khan reports back to Bill. Several Bobsʼ differential backups failed to be completely received. Khan vows to return to fight Medeiros in 82 Eridani agian.&lt;br /&gt;
| Khan&lt;br /&gt;
|-&lt;br /&gt;
| p2c61&lt;br /&gt;
| Howard – September 2188 – Omicron² Eridani&lt;br /&gt;
| Howard arrives at Omicron² Eridani with the Earth colonists aboard Exodus-1 and Exodus-2. Colonel Butterworth is awoken and settlement of Vulkan begins in earnest.&lt;br /&gt;
| Howard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b2|Book 2: For We Are Many]]====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 2: &#039;&#039;[[For We Are Many]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| c1&lt;br /&gt;
| Sky God; Bob, February 2167, [[Delta Eridani]]&lt;br /&gt;
| Deltans take down a pigoid. Bob pressures Cruella, a Deltan medicine woman, to use hot water to dress a wound. Marvin tells Bob of a mystery of Deltan migration patterns.&lt;br /&gt;
| Bob, Marvin, Archimedes, Cruella&lt;br /&gt;
|-&lt;br /&gt;
| c2&lt;br /&gt;
| Colony Site; Howard, September 2188, [[Vulcan]]&lt;br /&gt;
| Howard learns of an attack by local birds against excavation equipment. Howard meets with Colonel Butterworth regarding New colony issues. Colonel butcher worth expresses desire for future colonists to pick a different planet besides Vulcan.&lt;br /&gt;
| Howard, Butterworth&lt;br /&gt;
|-&lt;br /&gt;
| c3&lt;br /&gt;
| Life in Camelot; Bob, March 2167, Delta Eridani&lt;br /&gt;
| Bob speaks with Archimedes who is curious about Bob&#039;s nature. &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c4&lt;br /&gt;
| Water Planet; Mulder, October 2170, [[Eta Cassiopeiae]]&lt;br /&gt;
| Mulder explores the system. Mulder finds a water world covered with a sparse scattering of photosynthesizing oxygen producing mats floating on the surface. Mulder finds the ocean is 800 km deep. Mulder creates two Bobs: Skinner and Johnny. Johnny is extremely sarcastic. Johnny wishes to depart quickly for another place.&lt;br /&gt;
| Mulder&lt;br /&gt;
|-&lt;br /&gt;
| c5&lt;br /&gt;
| Progress; Howard, December 2188&lt;br /&gt;
| Howard discusses with butcherworth the progress on securing the perimeter of Landing, the primary settlement on Vulcan. But it reports that local wildlife continues to attack the colonization site but they show no sign of intelligence. Howard has a meeting with Bert and Ernie informing them that they may soon be released to return to Earth. Colonist decanting begins and completes. Howard nodes that the next shipment of colonists the spits going to have to be delayed in order to facilitate or accommodate the securing of Landing. Bert and Ernie note that the spits would likely be departing Earth as scheduled, but they cannot help their detenting date.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c6&lt;br /&gt;
| Contacting Bill; Mulder, April 2171, Poseidon&lt;br /&gt;
| Molar constructs the scut scut in order to communicate with Bill. Mulder is extremely surprised when Bill enters his own VR environment in real time. Bill tells Mulder that habitable planets are still in demand. Mulder decides to work in Earnest to prepare the local system Poseidon specifically into being ready to receive colonists. Mulder notes that colonists for Poseidon will have to initially be space-based due to the lack of land on Poseidon.&lt;br /&gt;
| Mulder&lt;br /&gt;
|-&lt;br /&gt;
| c7&lt;br /&gt;
| Back to Work; Riker, July 2171, [[Sol]]&lt;br /&gt;
| Riker receives reports from Charles about VEHEMENT terrorist attacks that have begun to become more deadly. Charles believes that the attacks are now coming from two groups. Not just VEHEMENT. Riker attends another United Nations meeting and lads the speech of a Maldives representative who insists upon spreading humanity beyond just epsilon eradani and into Poseidon as well in order to further create more redundancy in human civilization.&lt;br /&gt;
| Riker, Charles&lt;br /&gt;
|-&lt;br /&gt;
| c8&lt;br /&gt;
| Farming Satellites; Howard, April 2189, Vulcan&lt;br /&gt;
| Howard oversees the commissioning of farming stations. &#039;&#039;Heaven-3&#039;&#039; arrives. The captain, Sam, meets with Howard, expressing distaste for being a truck driver. Howard enjoys Sam&#039;s cognac. Howard asserts dominance over colonists via their position of power over food production. Howard&#039;s primary argument rests upon their lack of involvement in creating the war that killed most humans on Earth. Howard discuses incompatibility of Vulcan flora and fauna.&lt;br /&gt;
| Howard, Sam, Butterworth&lt;br /&gt;
|-&lt;br /&gt;
| c9&lt;br /&gt;
| Something is Out There; Bob, September 2169, Delta Eridani&lt;br /&gt;
| Bob reviews the status of the Deltans. Marvin tells Bob that there was a predator in the recent past. That&#039;s nearly wiped out the Deltans that was not the gorilloids. Bob decides to postpone armament production in order to produce scouts to scan Eden&#039;s surface in search of the predators that Marvin believes exists.&lt;br /&gt;
| Bob, Marvin&lt;br /&gt;
|-&lt;br /&gt;
| c10&lt;br /&gt;
| Genocide; Mario, November 2176, [[Zeta Tucanae]]&lt;br /&gt;
| Mario discovers more evidence of a genocide in a separate star system that he had fled to after departing Beta Hydri. On a habitable world, Mario discovers the planet to be sterilized and evidence of cities and transport infrastructure laid waste to an effort to recover metal and the bodies of the inhabitants.&lt;br /&gt;
| Mario&lt;br /&gt;
|-&lt;br /&gt;
| c11&lt;br /&gt;
| Mating Dance; Bob, November 2169, Delta Eridani&lt;br /&gt;
| Bob teaches Archimedes principles of [[Jujutsu]] to further his [[eugenics]] project of increasing Deltan intelligence by spreading Archimedesʼ genes in the next generation. Archimedes fancies Diana. Marvin informs Bob that a Deltan has fallen prey to the mystery predator. &lt;br /&gt;
| Bob, Archimedes, Marvin&lt;br /&gt;
|-&lt;br /&gt;
| c12&lt;br /&gt;
| Bob Calling; Bill, May 2171, [[Epsilon Eridani]]&lt;br /&gt;
| Bill receives contact from Bob who just constructed their SCUT device and logged onto BobNet. Bill and Garfield are surprised that Bob made [[First contact (science fiction)|First Contact]] with intelligent life in [[Delta Eridani]]. Bill is surprised at Bob-1&#039;s adeptness with virtual reality programming and decides to copy much of Bob&#039;s work. Bill catches Bob up on the human evacuation of Earth to [[Omicron² Eridani]]. Bill confesses their android project has only yielded a quadruped model so far.&lt;br /&gt;
| Bill, Bob, Garfield&lt;br /&gt;
|-&lt;br /&gt;
| c13&lt;br /&gt;
| Investigating the Others; Mario, May 2180, [[Gliese 54]]&lt;br /&gt;
| Mario finds no sign of the genociders in Gliese 54. Mario creates Bashful, Dopey, Sleepy, and Hungry. They consider plans to gauge the magnitude and direction of the genocider threat. Mario recommends frequent differential backups in case one of them is compromised to prevent secrets being leaked from disassembly.&lt;br /&gt;
| Mario&lt;br /&gt;
|-&lt;br /&gt;
| c14&lt;br /&gt;
| Sabotage; Riker, December 2170, Sol&lt;br /&gt;
| Riker learns of VEHEMENT attacks on cattle. UN representatives condemn the attack. Riker wishes he had some political agenda to push since VEHEMENT has made itself a common enemy and thus generated consensus in the UN. Homer reveals that he has been under-reporting agricultural production so the VEHEMENT attacks only ate into that safety factor.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c15&lt;br /&gt;
| A Visit From Bill; Mario, November 2180, Gliese 54&lt;br /&gt;
| Mario receives blueprints for and builds a SCUT. Bill calls Mario. Mario shares the bad news about the genociders. Bill promises to work on developing weapons.&lt;br /&gt;
| Mario&lt;br /&gt;
|-&lt;br /&gt;
| c16&lt;br /&gt;
| Hunted; Howard, September 2189, Vulcan&lt;br /&gt;
| Howard intervenes with a Buster to save a colonist hunting raptors. Howard talks with Hunter Stéphane. Howard meets with Bob and Bill in a camping VR environment. Bob says he feels anxious when thinking about his flesh relatives. Howard tells Butterworth about the Others that Mario and company is tracking down. Butterworth is angry. Butterworth and Howard lament their lack of free time.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c17&lt;br /&gt;
| We’ve Lost a Drone; Bob, May 2171, Delta Eridani&lt;br /&gt;
| Bob continues to transmit SCUT plans to Luke and Bender&#039;s anticipated position. Marvin and Bob discover more evidence of the unknown predator of Deltans after the predator took down a drone. &lt;br /&gt;
| Bob, Marvin&lt;br /&gt;
|-&lt;br /&gt;
| c18&lt;br /&gt;
| It’s Getting Worse; Riker, Sept 2172, Sol&lt;br /&gt;
| A bombing in a Brazilian favela. Brazilian Minister Benedito asks for help but Riker declines. New Zealand Minister Gerrold accuses Riker of failing to catch the terrorists. Maldives Minister Sharma defends Riker, citing bigotry against replicants. Riker notices Homer is quiet.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c19&lt;br /&gt;
| Prey; Bob, June 2172, Delta Eridani&lt;br /&gt;
| Bob and Marvin deduce the predator is a camouflaging Hippogriff, a horse-sized relative of a smaller predator flyer observed long ago. Bob kills a Hippogriff approaching Camelot with a buster. Many Hippogriffs approach in response. Bob kills them with all available busters. Three Deltans are killed by Hippogriffs. Leader Hoffa accuses Bob of leading the Deltans into the Hippogriff territory. Bob defends his recommendation for the Deltans to relocate to their flint site. Bob kinetically bombards a nearby island densely packed with Hippogriff. The Delta leader Hoffa bans Bob. Bob leaves. Diane is triumphant.&lt;br /&gt;
| Bob, Marvin, Hoffa, Archimedes&lt;br /&gt;
|-&lt;br /&gt;
| c20&lt;br /&gt;
| Parasite; Howard, October 2189, Vulcan&lt;br /&gt;
| Howard and Butterworth watch parasite eggs and larva being removed from a person. Howard watches a conference call between Riker and Julia and her son, Justin. Howard and Butterworth see a captured flying adult version of the parasite.&lt;br /&gt;
| Howard, Butterworth &lt;br /&gt;
|-&lt;br /&gt;
| c21&lt;br /&gt;
| Attacks Continue; Riker, December 2174, Sol&lt;br /&gt;
| A cargo drone is lost carrying food and agricultural equipment to [[Vancouver Island]]. One of Homerʼs farming donuts suffers a VEHEMENT cyberattack, destroying kudzu. Riker decides to study cryptography after being unable to identify the attack vector.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c22&lt;br /&gt;
| Fallout; Bob, December 2173, Delta Eridani&lt;br /&gt;
| Bob meets in secret with Archimedes. Bob teaches Archimedes about archery and crafting bows. Archimedes says Bob is no longer welcome in Camelot due to the decrease in hippogriff attack frequency since Bob left; Bob retorts that, although they have been exiled, Bob has still been eliminating hippogriffs in the vicinity to protect Archimedes. Marvin announces his departure from Delta Eridani. Bob wonders how Luke and Bender are doing, wishing they&#039;d make a SCUT transmission eventually.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c23&lt;br /&gt;
| VEHEMENT; Riker, September 2175, Sol&lt;br /&gt;
| Riker receives notification that another VEHEMENT attack occurred, this time destroying a newly constructed donut-farm that Homer had built. Homer is distraught and sullen. Riker speculates on how VEHEMENT is coordinating actions with this new second faction that seems more capable and has effected complex attacks on the planetary power system. Riker speculates that VEHEMENT is using steganography to communicate because he cannot detect any unusual traffic in the limited planetary communication network.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c24&lt;br /&gt;
| Visiting Marvin; Bob, March 2174, Delta Eridani&lt;br /&gt;
| Bob calls Marvin over SCUT. Bob admires Marvinʼs habitable Moon environment. Bob tells Marvin that he has created Pete and Victor. Victor is willing to try and track down Luke or Bender. However, Pete is fiercely independent and simply wishes to go explore on his own. Bob and Marvin worry about the fates of Luke and Bender.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c25&lt;br /&gt;
| Rabbits; Howard, November 2189, Vulcan&lt;br /&gt;
| Howard receives a call from a biologist named Dr. Sheehy telling him that rabbits have the ability to consume local flora and convert that biomass into meat which the colonists on Vulcan can consume.  Dr. Sheehy also informs Howard that local vegetarian megafauna that have been eating fence material have begun to be hunted by colonists for their meat.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c26&lt;br /&gt;
| Selling Poseidon; Riker, December 2175, Sol&lt;br /&gt;
| Ambassador Gerrold accuses Riker of failing to stop VEHEMENT attacks. Riker bluffs, saying he already has thwarted most of its attacks. Riker orders Guppy to monitor communication channels for reactions to his private meeting with Gerrold.   Riker attends a meeting debating which colonists will be sent to Poseidon.  Guppy informs Riker that a drone happened to catch a tight-beam message from New Zealand to Homer&#039;s Heaven vessel. Riker concludes Homer&#039;s mind has been compromised.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c27&lt;br /&gt;
| Luke Returns; Bob, March 2178, Delta Eridani&lt;br /&gt;
| Luke calls Bob from Kappa Ceti via SCUT. Bob shows Luke his real-time VR of Deltan villages.  Luke tells Bob that he has no idea what happened to Bender.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c28&lt;br /&gt;
| Et Tu, Homer; Riker, December 2175, Sol&lt;br /&gt;
| Riker meets with Charles via direct laser communication to discuss the issue of Homer being infected with a mind control virus. They agree to set a trap for Homer.  Riker calls a meeting with Homer, saying he has identified a VEHEMENT plan.  Riker sets up a sandbox Bob and asks Charles to take aim at Homer&#039;s reactor core.  Homer disables Riker&#039;s sandbox Bob. Charles shoots Homer&#039;s reactor core, shutting down Homer&#039;s power. A digital autopsy reveals a security vulnerability via laser communications. Charles asks Riker to audit his, Charles’, software; Riker shuts down, inspects, and declares clean Charles.  Riker and Charles confront Ralph and force him to undergo shutdown and undergo a software audit; Ralph submits. Riker rebuilds Homer as best as he can.  Homer awakens but is extremely traumatized at being puppetted into killing people and being unable to even end himself.  Bill offers weapons development help to kill those responsible.  Riker identifies and confirms that a New Zealand military communications site as the source of the infecting signal.&lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c29&lt;br /&gt;
| Emergency; Howard, April 2190, Vulcan&lt;br /&gt;
| Howard tracks raptors that broke into Landing.  No colonists were killed but the raptors displayed advanced battlefield tactics that only were thwarted by Howard&#039;s framejack ability to effectively integrate many drone sensor streams simultaneously.  Dr. Sheehy develops a passive body odor detection method for parasites and names the species “Cupid Bugs” for their tendency for larva to attack human hearts. &lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c30&lt;br /&gt;
| Found Something; Bashful, November 2187, [[Gliese 877]]&lt;br /&gt;
| Bashful explores [[Gliese 877]].  They find technological radio signals.  Bashful sends some stealth probes that they designed into the system to collect data through passive scans.  Bashful maneuvers their ship to stay far away from the star system and intercept the drifting probes.  Bashful intercepts the probes, downloads their contents, forwards them back to Mario for analysis, and begins their own analysis.  While analyzing in deep space, Bashful is surprised by a proximity alert.  After a brief attempt at escaping six pursuing vessels, a large one resembling a Death Star aims and fires its primary weapon.  Due to Bashful shutting down and multiple system failures, GUPPI self-destructs Bashful via reactor overload.&lt;br /&gt;
| Bashful&lt;br /&gt;
|-&lt;br /&gt;
| c31&lt;br /&gt;
| Taking Care of Business; Howard, January 2191, Vulcan&lt;br /&gt;
| Howard meets with Bridget to test alcohol to beverages that he has been producing. Howard meets with Bridget and Stéphane for a casual round of drinks. Stéphane compliments Howard and Bridget on the rabbits project, noting that he has sampled rabbits too several times and enjoys it. Bridget tells Howard about a joke involving [[Toast (honor)|toasting]] rituals for alcoholic drink and Irish ridicule of the British.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c32&lt;br /&gt;
| Linus; Bill, May 2178, Epsilon Eridani&lt;br /&gt;
| Linus meets with Bill bringing Henry to meet. They discuss VR matters. Linus and Henry are to get to their own new ships.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c33&lt;br /&gt;
| Trouble in Paradise; Bob, January 2180, Delta Eridani&lt;br /&gt;
| Bobby Marvin monitor and discuss the Deltans. Deltan society has progressed to the point of high population and intersectional conflict with multiple murders having occurred.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c34&lt;br /&gt;
| Moose; Bill, June 2185, Epsilon Eridani&lt;br /&gt;
| Bill rides across Ragnarök in his quadruped moose therioid named Bullwinkle on Ragnarök.  Bill meets with ten new Bobs created to occupy [[82 Eridani]].  One is a copy of Khan named Loki. An Elmer backup is one of the Bobs created.  The new Bobs depart for 82 Eridani.  Bill introduces to the Bobs the Australian replicant Henry that Linus found at [[Epsilon Indi]].&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c35&lt;br /&gt;
| Sales Call; Howard, September 2192, Vulcan&lt;br /&gt;
| Howard and Bridget present [[Irish Whiskey]] to Butterworth who approves. Howard and Bridget begin dating.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c36&lt;br /&gt;
| Asteroid Movers; Bill, March 2187, Epsilon Eridani&lt;br /&gt;
| &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c37&lt;br /&gt;
| He’s Gone; Riker, August 2176, Sol&lt;br /&gt;
| &lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c38&lt;br /&gt;
| Following up; Hal, May 2188, Gliese 877&lt;br /&gt;
| &lt;br /&gt;
| Hal&lt;br /&gt;
|-&lt;br /&gt;
| c39&lt;br /&gt;
| Bob-Moot; Bill, August 2188, Epsilon Eridani, February 2178, Vulcan&lt;br /&gt;
| &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c41&lt;br /&gt;
| Casualties; Bob, July 2182, Delta Eridani&lt;br /&gt;
| &lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c42&lt;br /&gt;
| Business; Howard, March 2193, Vulcan&lt;br /&gt;
| &lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c43&lt;br /&gt;
| An Exchange of Words; Riker, March 2178, Sol&lt;br /&gt;
| &lt;br /&gt;
| Riker&lt;br /&gt;
|-&lt;br /&gt;
| c44&lt;br /&gt;
| Baseball; Bill, March 2189, Epsilon Eridani&lt;br /&gt;
| Garfield presents to Bill a flying android: Rocky. Garfield flies in Rocky&#039;s body, but crashes.&lt;br /&gt;
| Bill, Garfield,&lt;br /&gt;
|-&lt;br /&gt;
| c45&lt;br /&gt;
| Replication; Howard, August 2193, Vulcan&lt;br /&gt;
| Howard talks to Riker and fields the idea of scanning a living person in order to convert them into a replicant. Riker is suspicious but agrees to look into the matter. Howard, in private, re-examines a medical image involving Bridget Sheehy. Later Howard confronts Cranston regarding bootleg alcohol being smuggled into New Jerusalem. Howard begins talks to regulate trade between lending and New Jerusalem. Privately, Riker tells Howard that he wants to eliminate Cranston.&lt;br /&gt;
| Howard, Riker&lt;br /&gt;
|-&lt;br /&gt;
| c46&lt;br /&gt;
| Klown Kar Planet; Rudy, February 2190, [[Epsilon Indi]]&lt;br /&gt;
| Rudy arrives at Klown Kar Planet (KKP) a few weeks before Edwin. Rudy briefs Edwin on the extremely varied and competitive biodiversity of KKP.&lt;br /&gt;
| Rudy, Edwin&lt;br /&gt;
|-&lt;br /&gt;
| c47&lt;br /&gt;
| New Village; Bob, September, 2182, Delta Eridani&lt;br /&gt;
| Deltan adolescents part the main encampment to resettle an abandoned one. Bob and senior Deltans celebrate their successful reverse psychology ploy of getting the overcrowded Deltan population to disperse somewhat. Marvin warns that the competing Deltans will likely eventually use violence to compete for resources.&lt;br /&gt;
| Bob, Marvin&lt;br /&gt;
|-&lt;br /&gt;
| c48&lt;br /&gt;
| Operation; Howard, September 2193, Vulcan&lt;br /&gt;
| Howard waits for Bridget to come out of surgery to remove cancerous tumors. Stéphane notifies Howard that Bridget has exited surgery explaining that the tumors were more widespread than previously were found but that the doctors had a positive outlook. Anyway. Howard is present when Bridget wakes up. And almost makes a joke but is interrupted when Stéphane enters the room. And Howard feels like a third wheel Howard excuses himself from Bridget and Stéphane&#039;s conversation noticing that they are more than a close friends and Howard feels jealous. Howard reflects that his love for Bridget is not possible to act upon due to the fact that Howard is a replicant and Bridget is a flesh and blood human.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c49&lt;br /&gt;
| Arrival; Mulder, March 2195, Poseidon (Eta Cassiopeiae)&lt;br /&gt;
| Loki and other Bobs battle Medeiros in 82 Eridani. After a battle between stealth ships, they deduce a weakness in Medeiros&#039;s communication system that relies heavily upon AMIs for locally executing tactics. The Bobs exploiti this reliance upon AMIs and Medeiros&#039;s command ships to reveal their position. The Bobs wipeout installations in 82 Eridani. Loki and others deduce that many other Medeiros are unaccounted for and that there were actually three, not two Medeiros probes that originally launched.&lt;br /&gt;
| Mulder&lt;br /&gt;
|-&lt;br /&gt;
| c50&lt;br /&gt;
| Second Expedition; Loki, November 2195&lt;br /&gt;
| &lt;br /&gt;
| Loki&lt;br /&gt;
|-&lt;br /&gt;
| c51&lt;br /&gt;
| Wedding; Howard, April 2195, Vulcan&lt;br /&gt;
| Howard donates his stake in the Irish Whiskey business to Stéphane and Bridget as a wedding gift. In reality, Howard is disappointed that Bridget chose to partner with Stéfane. In order to get over Bridget, Howard decides to leave Vulcan entirely and go exploring. Howard, Bridget and Stéphane part ways amicably.&lt;br /&gt;
| Howard, Bridget, Stéphane&lt;br /&gt;
|-&lt;br /&gt;
| c52&lt;br /&gt;
| Bullwinkle; Bill, December 2195, Epsilon Eridani&lt;br /&gt;
| Bill is testing out Bullwinkle on Ragnarok when Garfield calls and tells him that the 82 Eridani expedition has reported back good news. Garfield tells Bill that Loki is successfully reverse engineering the cloaking technology that Medeiros wielded in battle. Marvin and Luke propose to Bill a long-term project to find Bender, their cohort-mate, in order to find out what happened to him.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c53&lt;br /&gt;
| Testing; Hal, April 2196, GL 877&lt;br /&gt;
| Hal sends an AMI-driven Heaven ship decoy into known Others territory to test Zapper shielding. Others appear and follow the decoy. Mario joins Hal in watching the pursuit. The decoy is zapped but survives, sending a scan of the internals of the Others ships. Hal and Mario see large communal living areas within the Others ships. Hal departs to GL 54.&lt;br /&gt;
| Hal&lt;br /&gt;
|-&lt;br /&gt;
| c54&lt;br /&gt;
| Stuff is Happening; Hal, October 2197, En Route to GL 54&lt;br /&gt;
| Bill tells Hal that Others are headed from GL 877 to GL 54.&lt;br /&gt;
| Hal&lt;br /&gt;
|-&lt;br /&gt;
| c55&lt;br /&gt;
| Contact; Bill, October 2204, GL 54&lt;br /&gt;
| Bill talks to Others via a decoy vessel in GL 54. The Others communicate to Bill using the [[chinese language]] that they say they learned from a probe they captured. Bill asks why the Others genocide planetary inhabitants such as those of [[Zeta Tucanae]]. The Others call him and all life besides themselves “food”. The Others reveals their knowledge of [[Sol]] and [[Epsilon Eridani]] and their plants to harvest food there. Bill&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c56&lt;br /&gt;
| Descendants; Bob, January 2183, Delta Eridani&lt;br /&gt;
| Bob passively observes Archimedes and his family over time. The Deltans treat their memory of Bawbe as that of a malicious deity.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c57&lt;br /&gt;
| Moot; Bill, October 2204, Epsilon Eridani&lt;br /&gt;
| Bill presents scans of the Others ships to Bobs at a moot. Other Zapper and remote subspace power beaming technology is discussed. Other biology and their packed living conditions are presented. &lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c58&lt;br /&gt;
| News; Howard, July 2198, Interstellar Space&lt;br /&gt;
| Howard receives an update on Bridget and Stéphane. Howard learns that Cranston has has been forced from power and New Jerusalem is now a democracy. Howard learns that Bridget and Stéphane had a son. The son&#039;s name is Howard. Howard is conflicted and regretful.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c59&lt;br /&gt;
| Another One; Bill, April 2205, Epsilon Eridani&lt;br /&gt;
| Bill sees from surveillance drones that Others are mounting an expedition to [[NN 4285]]. Bill talks to Mario who says Claude is headed to [[Gamma Pavonis]] and Jacques to Delta Pavonis]], two star systems near NN 4285. Bill contacts Claude to ask him to prepare for war; Claude is hesitant, not wanting the responsibility. Bill searches for manufacturing centers and decides to use [[Alpha Centauri]] which is uninhabited; Bart had left it with only an AMI long ago. Bill tells Garfield he intends to print himself a replicant matrix in Alpha Centauri and load a backup of himself there to begin the war effort against the Others.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c60&lt;br /&gt;
| Arrival; Claude, May 2205, [[Gamma Pavonis]]&lt;br /&gt;
| Claude arrives in Gamma Pavonis. The system has an ideally habitable world with no obvious intelligent life. Claude informs Bill who says Others consume a star system once roughly every decade or two. Bill says reinforcements from Jacques will arrive around the same time the Others do.&lt;br /&gt;
| Claude&lt;br /&gt;
|-&lt;br /&gt;
| c61&lt;br /&gt;
| Starting Over; Oliver, September 2205, [[Alpha Centauri]]&lt;br /&gt;
| Bill&#039;s backup wakes up in Alpha Centauri and names himself Oliver after another &#039;&#039;[[Bloom County]]&#039;&#039; character. Oliver decides to research relativistic velocity weapons. Oliver scales up production first with printers then Bobs and battle cruisers. Oliver mentions Butterworth provided [[H-bomb]] blueprints.&lt;br /&gt;
| Oliver&lt;br /&gt;
|-&lt;br /&gt;
| c62&lt;br /&gt;
| Departure; Mulder, November 2201, Departure&lt;br /&gt;
| Mulder prepares to depart Poseidon leaving command of the system in charge of Marcus. Monty prepares to pilot a ship back to Sol system. Marcus shows Mulder a prototype floating city design that should be in operation by the time Mulder returns to solar system. Riker and Mulder have a call. Riker tells Mulder that several colonists ventures at Vulcan, Poseidon, Epsilon Indi, and 82 Eridani are underway. The Others threaten Epsilon Indi and 82 Eridani.&lt;br /&gt;
| Mulder&lt;br /&gt;
|-&lt;br /&gt;
| c63&lt;br /&gt;
| The Pav; Jacques, February 2207, [[Delta Pavonis]]&lt;br /&gt;
| Jacques arrives at Delta pavonis and finds an industrial era civilization on one of the planets. Jacques and Bill are both somewhat sad that the Others are likely to destroy this civilization. Bill exhorts Jaques to build dreadnaughts of Oliver&#039;s design from local solar system resources in Delta Pavonis in order to prepare to defend the system or to provide backup to Claude. Jaques provisionally calls the intelligent life of Delta Pavonis the Pav. Jaques deploys drones to infiltrate Pav cities and begins reading Pav books as well as listening to Pav orators read from books. Jacques observes that the Pavs physically resemble meerkats and have family units composed many adults with genders roughly evenly split.&lt;br /&gt;
| Jacques&lt;br /&gt;
|-&lt;br /&gt;
| c64&lt;br /&gt;
| Moot; Bill, March 2207, Epsilon Eridani&lt;br /&gt;
| Bill holds a moot to discuss Other movements. Others have kicked out Mario from GL 54. The Others are moving towards [[NM 4285]]. Bill informs the moot of the habitable planet in Gamma Pavonis and intelligent life in Delta Pavonis. Strategic weapons are discussed: cloaking, relativistic ramming, SCUT-based suicide bombers. Bill listens to Jacques present his observations of the Pavs. Bill regrets that the Bobs are so disorganized.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c65&lt;br /&gt;
| Grandpa; Bob, January 2195, Delta Eridani&lt;br /&gt;
| Bob watches Archimedes spend time with his grandchildren. Bob regrets being exiled. Bob wishes Bill would accelerate android research but knows Bill is occupied with other major projects such as terraforming Ragnarök.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c66&lt;br /&gt;
| It’s Happening; Bill, January 2208, Epsilon Eridani&lt;br /&gt;
| Bill discovers the Others have deployed a convoy to Delta Pavonis. Bill immediately warns Jacques and Claude. Oliver and Claude agree to send reïnforcement warships. Bill holds a somber moot. The idea of moving the Pav planet is proposed and shot down. Garfield tells Bill that the Others have get to face significant resistance and so the Others may have a weakness in their overconfidence.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c67&lt;br /&gt;
| Bad News; Howard, December 2210, [[HIP 14101]]&lt;br /&gt;
| Howard receives notification that Bridget&#039;s husband, Stéphane, had contracted a fatal illness and is soon to die. Howard calls Bridget who tells him the illness progressed quickly and Stéphane is now beyond speaking to. Howard receives one of Bill&#039;s humanoid androids to wear for Stéphane&#039;s funeral.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c68&lt;br /&gt;
| Recording; Jacques, September 2212, Delta Pavonis&lt;br /&gt;
| Howard collects biological samples and records extensive sensor data on the Pav planet. Howard focuses his attention on two communities called Mheijrkva and Aizzilkva. Howard focuses on a single Pav family called the Los family in Mheijrkva. Howard focuses further on the family&#039;s matriarch and town councilwoman Da Hazjiar Los.&lt;br /&gt;
| Jacques&lt;br /&gt;
|-&lt;br /&gt;
| c69&lt;br /&gt;
| Wake; Howard, January 2211, Vulcan&lt;br /&gt;
| Howard attends Stéphaneʼs funeral wake piloting Manny, the prototype android Bill created. Howard meets Bridgetʼs children: Rosie, Lianne, and Howie. Howard reports back to Bill and original Bob on Mannyʼs performance; Howard compares VR to embodying an android to trying to tickle yourself versus being tickled by someone else. Bill convinces Bob to help with the Android Project development.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c70&lt;br /&gt;
| Conversation; Howard, May 2211, HIP 14101&lt;br /&gt;
| Howard discusses with Bridget the possibility of her becoming a replicant. Bridget declines. Howard asks if Butterworth would like to be replicated for the war effort and he agrees.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c71&lt;br /&gt;
| Charlie; Bob, June 2213, Delta Eridani&lt;br /&gt;
| Bob tests out his Deltan android Charlie with Archimedes. Bob&#039;s first test was visually almost passable but olfactorily repugnant. Bob&#039;s second test is much more pleasing to Archimedes and Bob decides to accompany Archimedes to meet his family under a name he translates for himself as “Robert”.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c72&lt;br /&gt;
| Battle; Bill, February 2217, Delta Pavonis&lt;br /&gt;
| The Bobs fight the Others to defend Delta Pavonis. The Boba deploy cloaking tech, fusion bombs, Zapper resistance, and Butterworth tactics. Jacques is killed in action. The Bobs fail to eliminate the Other fleet.  Andrew informs Bill that Jacques left some Pav abduction plans to preserve their species.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c73&lt;br /&gt;
| Collection; Phineas, February 2217, Delta Pavonis&lt;br /&gt;
| Phineas and Ferb abduct Pavs from Mheijr, another settlement, and some military bases. They capture roughly 20 000 Pavs with sleeping gas and successfully put them into cryo sleep.&lt;br /&gt;
| Phineas&lt;br /&gt;
|-&lt;br /&gt;
| c74&lt;br /&gt;
| Observing the Process; Bill, May 2217, Delta Pavonis&lt;br /&gt;
| Bill holds a somber moot about the failed defense of Delta Pavonis. Bill witnesses the slaughter of billions of Pavs. Bill has an idea while morosely observing the lake he accidentally created on Ragnarök.&lt;br /&gt;
| Bill&lt;br /&gt;
|-&lt;br /&gt;
| c75&lt;br /&gt;
| Reunion; Howard, January 2216, HIP 14101&lt;br /&gt;
| Howard meets Bridget in-person via Manny.&lt;br /&gt;
| Howard&lt;br /&gt;
|-&lt;br /&gt;
| c76&lt;br /&gt;
| Funeral; Bob, November 2220, Delta Eridani&lt;br /&gt;
| Bob attends the funeral of Diane, wife of Archimedes. Bob contemplates the mortality of Archimedes.&lt;br /&gt;
| Bob&lt;br /&gt;
|-&lt;br /&gt;
| c77&lt;br /&gt;
| Bill and Jacques awaken eight Pavs to ask them whether to try and recolonize [[Aszjan]] (their home planet a.k.a. DP-4) or to accept the Bobs’ recommendation to colonize a new planet. Bill presents images of the planet the Bobs are recommending. Their spokesperson, Hazjiar, says they wish to accept the new planet. Bill puts the Pavs back into stasis. Bill tells Andrew that he is developing a long-term final solution to the Others.&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b3|Book 3: All These Worlds]]====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ &#039;&#039;[[All These Worlds]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Ch&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| [[/b3/c0|c0]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[/b3/c1|c1]]&lt;br /&gt;
| &lt;br /&gt;
| Bob in the Android Charlie accompanies Donald and some other Deltans on a hunt for pigoid. Fred, a Deltan from the rival settlement Caerleon, demands tribute from their hunting catch. Bob confronts Fred and bests him in a battle of words and physical battle.  Donald asks Camelot politician Jeffrey to address the rising hunting attacks. Bob asks Donald to gather some people to take action.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c2&lt;br /&gt;
| &lt;br /&gt;
| Howard grieves the loss of the Pav civilization with Bridget.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c3&lt;br /&gt;
|&lt;br /&gt;
| Marcus discusses with Kal and Gina the issue of Poseidon being ruled by an increasingly tyrannical government of Poseidon administrative council. Democratic elections have been perpetually postponed. Marcus, still a spaceship in orbit, decides to perform espionage against the council. Marcus contacts Howard.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c4&lt;br /&gt;
| &lt;br /&gt;
| Howard visits a mall with Bridget. A teenager who points out their apparent age difference offends Howard. Bridget says her daughter Rosie fiercely disapproves of Howard dating Bridget. Howard offers to cut all contact with Bridget. Bridget reässerts her desire to maintain an intimate relationship with Howard.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c5&lt;br /&gt;
| &lt;br /&gt;
| Bob lures Fred into a trap. Bob threatens Fred and his cronies with violence if they don&#039;t stop attacking Camelot hunting parties.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c6&lt;br /&gt;
| &lt;br /&gt;
| Bill oversees the departure of his clones, Daedalus and Icarus, who govern the mover-plate-powered launch of former planet Epsilon Eridank 1 as well as a former moon of Epsilon Eridani 3 respectively. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c7&lt;br /&gt;
|&lt;br /&gt;
| Howard receives word that Butterworth declined his offer to be replicated and has died via assisted suicide due to dementia. Howard talks with Bridget about her mortality.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| c8&lt;br /&gt;
| &lt;br /&gt;
| Marcus, Kell and Gina discuss how to peacefully protest the tyranny of the Poseidon council and their refusal to hold elections. Marcus meets with the council and they shoot down his idea of allowing floating cities to ameliorate the population crowding issues on the mats of Poseidon. Marcus visits Kal and discovers surveillance bugs in his residence. Kal reports the Council is attempting to isolate known dissidents such as himself. Marcus equips Kal with encrypted SCUT communication devices. Marcus decides to support a revolution.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| c9&lt;br /&gt;
| &lt;br /&gt;
| Bridget confronts Howard at the mall. Howard and Bridget talk about their relationship. Howard reviews Vulcan social media posts criticizing his existence as a replicant and relationship with Bridget.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c10&lt;br /&gt;
|&lt;br /&gt;
| Bob is hunting alone when Fred and four cronies attempt to attack him in secret. Bob evades Fred. Donald encourages Bob to murder Jeff.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c11&lt;br /&gt;
|&lt;br /&gt;
| Mario calls Bill to tell him that they have found five additional civilizations that have been destroyed by the others. Mario recommends that the Others be exterminated completely. Bill advises Mario to talk with Claude who is in an attack force headed to Gamma Pavonis.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c12 &lt;br /&gt;
| &lt;br /&gt;
| Riker receives a call from Justin to learn that Julia is hospitalized. Julia suffered a brain aneurysm. Riker pilots Manny to attend Julia&#039;s funeral. Justin tells riker that no living human which is to become a replicant.&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| c13&lt;br /&gt;
| &lt;br /&gt;
| Marcus presents the first prototype of a flying city to Cal. Gina and company. Gina warns Marcus that the council will likely want to kill Marcus for threatening their control over the colonist labor force living on Poseidon&#039;s mats.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c14&lt;br /&gt;
| &lt;br /&gt;
| Howard attends a dinner with Bridget and some of her friends: Kumar and Reeda, Arnie and Sylvie. Howardʼs non-biological nature is the subject of conversation.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| c15&lt;br /&gt;
|&lt;br /&gt;
| Riker receives Charlesʼs report of poor metal availability for constructing ships in Sol system. Riker asks Representative Misra about canceling ship production and printing stasis pods instead for the 14 million Earth inhabitants. Misra rejects the idea. Minister MacIntyre of New Zealand strongly rejects Rikerʼs proposal, distrusting Riker entirely.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c16&lt;br /&gt;
|&lt;br /&gt;
| Marcus loads colonists onto four floating cities against the will of the Poseidon Council. Riker calls Marcus in response to Council protests. Marcus advocates for the colonists of Poseidon saying that the council is acting in a totalitarianism fashion. Riker offers no advice and asks Riker to not use violence.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c17&lt;br /&gt;
|&lt;br /&gt;
| Icarus and Daedalus. Talk cryptically about hightao for their mission. They discuss the possibility of traveling to the galactic center.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c18&lt;br /&gt;
| &lt;br /&gt;
| Mack and the other bobs, Issac, Jack, and Owen, arrive at [[82 Eridani]] with colonists. The Bobs name the two habitable planets according to a [[Norse mythology]] theme: planet 2 is Jotunheim and planet 3 is Asgard. They name the moon of planet 3 Valhalla. Mack debriefs Japan enclave leader Katsu Ito and Vancouver Island enclave leader Christie Campbell. They decide Christie&#039;s colonists will take Asgard and Katsu&#039;s colonists will take Jotunheim; Katsu renames the planet Takama-ga-hara. Jack relays colonist complaints to Mack: Takama stinks while Asgard has too high a gravity and mosquitos. Mack prints Cupid bug killers for the mosquitos.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c19&lt;br /&gt;
|&lt;br /&gt;
| On the floating city of Amhor, Vinnie tells Marcus, Kal, Frieda, and Denu that the Poseidon Council has declared them and other floating city inhabitants deserters, shutting down communications and free passage. Marcus finds all Lagrange point supplies and autofactories have been captured. Marcus detects his decoy self in space has been destroyed.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c20&lt;br /&gt;
|&lt;br /&gt;
| Howard discoveres floating life on a jovian. Howard shows Bridget via a VR interface. Bridget protests her youthful avatar and Howard pressuring her to submit to replication.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c21&lt;br /&gt;
|&lt;br /&gt;
| Bill visits Mack in 82 Eridani. Mack summarizes progress against the Asgard mosquitos. No solution exists for the stink of Takama. Mack suddenly goes offline due to an attack. Bill connects to roamer SCUT and finds Mack&#039;s hull several damaged and Mack&#039;s matrix shut down. Bill sees a Medeiros ship. Bill summons all available Bobs to framejack to maximum and manually pilot all remaining roamers on Mack&#039;s ship. The Bobs repel Medeiros boarding roamers long enough to allow destruction of most SCUT devices and sensitive data storage devices save those required to remotely manage the battle and secure escape of Mack&#039;s physical matrix. The Bobs attack Medeiros&#039;s vessel and force it to retreat and fire a missile destroy the roamers and Mack&#039;s ship. Bill holds an emergency moot. The nearest Bob is Hank at P Eridani at 11 light years away. The Medeiros is from Alpha Centauri and likely has limited manufacturing capability; their likely objective was to steal Mack&#039;s auto factories meant to support the 82 Eridani colonists.  The only remaining SCUT communication nodes are four drones. Bill orders all system printers to be detached and physically launched towards the colonist settlements.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| c22&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil explore the derelict of an other cargo vessel in Delta pavonis. They find find a power core that is not fusion-based. They decide to attempt to salvage and reverse engineer the new technology.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c23&lt;br /&gt;
|&lt;br /&gt;
| Howard receives news that Bridget has died. Dr. Onagi tells Howard that Bridget had arranged for her body to be put into stasis upon her death. Howard learns that Bridget changed her mind about replication in the last few months of her life and made legal arrangements to give Howard permission to replicate her even against the wishes of her own children. Howard prepares for a protracted legal battle for the replication of Bridget.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c24&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil disassemble an Other drone docked within Hulk-1. They deduce the drone is not autonomous and effectively inert.  They guess Hulk-1&#039;s controlling intelligence is dead. They map power systems of Hulk-1. They decide to power up Hulk-1.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c25&lt;br /&gt;
|&lt;br /&gt;
| Bill informs the Asgard and Takama colonists of the disabling of Mack and the Medeiros threat. The Medeiros approaches a Lagrange point auto factory the Bobs scuttled of all usefulness except the raw metal ingots. Medeiros destroys printers en route to Asgard. The Bobs destroy a pair of Medeiros busters with two thousand baseball-sized Asgard mosquito killers in order to secure safe passage of printers to Asgard.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c26&lt;br /&gt;
|&lt;br /&gt;
| Marcus observes the conflict from [[Eta Cassiopeia B]]. The Poseidon Council attacks the two floating cities housing resistance leaders. Marcus fires undocumented particle canons at missiles fired from Council orbital war ships. Marcus is able to save Amhor.  Floating city Thark is shot down. Marcus refuses to fire upon Council assets until Council command is identified. Marcus believes Council leadership commands from submarines. 150 missing residents of Thark are reported.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c27&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil power up the Hulk one systems. Hulk 1 power is online and no lfx are observed. Herschel and Neil contact Bill to tell them they&#039;re fine. They tell Bill that Hulk 1 could be retrofitted into the largest human evacuation ship to date to evacuate all remaining refugees from Earth.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c28&lt;br /&gt;
|&lt;br /&gt;
| Bob stocks Fred in carillion. Fred accuses Robert of having it easy. Bob demands to know why Fred keeps attacking Camelot people. Fred dares Bob to kill him. Bob makes a distraction and withdraws taking Fred&#039;s spear with him. Later. Bob in Archimedes talk. Archimedes notes that Bob Speer weapon is very poorly made and suspects that Caerleon Hunters have all poorly made equipment. Bob speculates that carillion&#039;s population entirely. Lex skillful flint nappers, which explains Caroline on people stealing catches from Camelot Hunters.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c29&lt;br /&gt;
|&lt;br /&gt;
| Howard cools down after leaving the courthouse and having to engage his endocrine control systems.  Dr. Onagi warns Howard that Bridget&#039;s oldest daughter may attempt to sabotage her mother&#039;s stasis thereby preventing her mother from being scanned. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c30&lt;br /&gt;
|&lt;br /&gt;
| Bill and the [[82 Eridani]] colonist leaders find Medeiros preparing kinetic bombardment weapons from busters and metal ingots at Lagrange autofactory remains. Bill launches busters to attack the asteroids being moved and their accompanying busters. The resulting battle eliminates all of medeiros&#039;s busters as well as all of Bill&#039;s busters. A surprise follow-up attack with the small mosquito Killers disables Medeiros&#039;s ship. Bill sends drones with roamers in an attempt to extract the replicant matrix of Medeiros but Medeiros suicides. Mack is rebooted. Mack and Bill plan future defences for colonies.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c31&lt;br /&gt;
|&lt;br /&gt;
| Marcus continues the assault on council forces. Council forces continue to attack floating cities. Marcus and his revolutionaries attack a council stronghold on an industrial mat. Marcus in his revolutionaries capture councilman Brennan. Marcus begins printing replacement security forces.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c32&lt;br /&gt;
|&lt;br /&gt;
| Bill reverse engineers the power generators for the Hulk 1. Bill notes other power generation technologies five times more efficient than human fusion technology. Bill discusses the possibility of evacuating me all of the Earth refugees in a single trip.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c33&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil presents their findings two other bobs at a moot about the Hulk 1 power core technology. Herechel and Neil secretly oversell the reliability of Other power core technology. They explain the Hulk-1 salvage operation to transport them towards Earth.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c34&lt;br /&gt;
| Kidnapping; Bob; September 2224; Delta Eridani (Eden)&lt;br /&gt;
| Caerleon Deltans kidnap Archimedes. Robert leads a party to rescue Archimedes. Robert Buster, Donald and other Delta Hunters from Camelot confront. Jeff and the other belgians. Buster immediately executes Jeff with an arrow at distance. Battle. Ensues and Robert scrambles to rescue Archimedes and is successful. The b10 and unconscious Archimedes is brought back to Camelot for recovery. Archimedes recovers. Robert and Donald&#039;s discuss because for the attack which was the fact that they decide to invite caroleon individuals to learn napping so that care Leon can gain their own ability to produce weaponry for that too.&lt;br /&gt;
| Bob, Fred, Buster, Archimedes&lt;br /&gt;
|-&lt;br /&gt;
| c35&lt;br /&gt;
| Cities Victorious; Marcus; October 2215; Poseidon&lt;br /&gt;
| Marcus and the revolutionaries prepare to try the council members that attacked the floating cities and killed 150 colonists. Marcus and company decide not to punish councilman Brennan anymore than they have to. They decide that working hard labor at a fish factory is sufficient. Marcus looks forward to being able to give up his current dictator pro tem position as soon as possible via elections.&lt;br /&gt;
| Marcus (POV), Kal, Denu, Gina, Vinnie&lt;br /&gt;
|-&lt;br /&gt;
| c36&lt;br /&gt;
| Announcement; Riker; October 2227; Sol&lt;br /&gt;
| Riker presents news of the Hulk 1. Salvage project human export from Earth to the United Nations. Rocker explains that the optimal path for evacuating Earth is to halt production of quality ships and instead to devotable resources to printing stasis pods and shuttles to get live humans from Earth up into orbit and into the balera font. The Hulk one ship as soon as possible.&lt;br /&gt;
| Riker (POV), Misra, Hubert&lt;br /&gt;
|-&lt;br /&gt;
| c37&lt;br /&gt;
| Court Battle; Howard; September 2220; Omicron² Eridani&lt;br /&gt;
| Howard wins the court case against Rosie. The judge decides in favor of Bridget being scanned. Howard notices a confident expression on Rosie&#039;s face and asks Bill to look into the stasis pod of Bridget. After the court is adjourned. Rosie gloats to Howard. She will not let her mother Bridget fall into Howard&#039;s hands. Howard that informs Rosie that Bill sent a drone in to scan Bridget. Bill found a remotely triggered device that shut down Bridget&#039;s stasis pod at the exact time that Rosie appeared to send a text while in the courtroom. Howard then says that he will endear the punishment for defying a court order for prematurely scanning Bridget while Rosie will have to endure punishment for actively sabotaging hospital equipment.&lt;br /&gt;
| Howard (POV), Benning, Bill, Gus Kistler, Rosie, Katz&lt;br /&gt;
|-&lt;br /&gt;
| c38&lt;br /&gt;
| Travelling; Herschel; September 2236; Interstellar Space&lt;br /&gt;
| Herschel and Neil bicker as they struggle to manage the hope one power core systems and its transport back to Earth. The other power core is unreliable. Their mover plates are underpowered and repeatedly failed due to the various construction activities that they have to perform with their local surge drives.&lt;br /&gt;
| Herschel (POV), Neil&lt;br /&gt;
|-&lt;br /&gt;
| c39&lt;br /&gt;
| Retirement; Marcus; February 2218; Poseidon&lt;br /&gt;
| Marcus relaxes several years after the council was deposed. Marcus long ago was voted out of office. Gina was elected leader of Poseidon. Marcus tells Kal that he plans on taking up oceanography with an aquatic body.&lt;br /&gt;
| Marcus (POV), Gina, Kal&lt;br /&gt;
|-&lt;br /&gt;
| c40&lt;br /&gt;
| Recovery; Bob; January 2225; Delta Eridani&lt;br /&gt;
| Bob watches the rain on Eden in Camelot and from orbit. Archimedes thinks about how to teach Caerleon flint knapping. The weather clears and Archimedes prepares flint.&lt;br /&gt;
| Bob (POV), Belinda, Archimedes&lt;br /&gt;
|-&lt;br /&gt;
| c41&lt;br /&gt;
| Resurrection; Howard; October 2220; HIP 14101&lt;br /&gt;
| Howard activates Bridget&#039;s replicant. Bridget talks with her son Howie. Bridget regrets that Rosie will not accept replicants as people and Howie is too afraid to cross Rosie. Bridget wishes to see the Odin blimp lifeforms.&lt;br /&gt;
| Howard (POV), Bridget&lt;br /&gt;
|-&lt;br /&gt;
| c42&lt;br /&gt;
| Results Negative; Bill; February 2228; 82 Eridani&lt;br /&gt;
| Bill and Mack speculate on the origin of the Medeiros that attacked 82 Eridani. They decide Medeiros may have a cloaked autofactory. Mack continues to build a new cohort and system defenses.&lt;br /&gt;
| Bill (POV), Mack&lt;br /&gt;
|-&lt;br /&gt;
| c43&lt;br /&gt;
| Course Correction; Icarus; March 2240; Interstellar Space&lt;br /&gt;
| Daedalus and Icarus approach Epsilon Indi to attack Others.&lt;br /&gt;
| Icarus (POV), Daedalus&lt;br /&gt;
|-&lt;br /&gt;
| c44&lt;br /&gt;
| Debut; Howard; December 2220; Odin&lt;br /&gt;
| Bridget and Howard pilot artificial mantas in Odin. Bridget attends her first moot. Howard introduces Bridget to Henry. Henry says he plans to get an Android body to sail every sea, starting with those of Omicron² Eridani.  Howard says Bridget plans to study every extraterrestrial species. Bridget laughs. Bill gives an update of the Others situation.&lt;br /&gt;
| Howard (POV), Bridget, Henry, Bill&lt;br /&gt;
|-&lt;br /&gt;
| c45&lt;br /&gt;
| Pav Arrival; Jacques; May 2247; HIP 84051 &lt;br /&gt;
| Jacques arrives at the second planet of [[HIP 84051]]. Jacques studies the notes of Steve, a Bob who first explored HIP 84051. Jacques talks with Phineas, one of the two other Bobs carrying colonists. Jacques decides to delay Pav revival until he can revive and adapt the biological samples taken from their home world in order to provide at least a portion of their native ecology for them when they are awakened.&lt;br /&gt;
| Jacques (POV), Phineas&lt;br /&gt;
|-&lt;br /&gt;
| c46&lt;br /&gt;
| City; Howard; June 2221; Odin&lt;br /&gt;
| Howard proposes to Bridget the idea of creating flooding cities on Odin as a means of creating a evacuation strategy for humans long-term. Should the other threat destroy all terrestrial habitation possibilities. Bridget agrees to the project, especially since it will allow her to study Odin native life.&lt;br /&gt;
| Howard (POV), Bridget&lt;br /&gt;
|-&lt;br /&gt;
| c47&lt;br /&gt;
|&lt;br /&gt;
| Riker and Bill discuss alcoholic trade. Riker proposes exploration of gl 877 in order to discover what others are doing. Riker proposes sending in low technology probes disguised as asteroids towards other systems. Later, Mario, a Bob close to gl 877, agrees to construct the probes.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c48&lt;br /&gt;
|&lt;br /&gt;
| Jacques, Phineas, and Ferb complete the Pav town and farms on HIP 84051. Jacques decants the Pav refugees. Jacques meets in person via a human android with Hazjiar and the other seven Pav that decided for the rest to emigrate. The Pav receive their weapons. Hazjiar remains suspicious of the generosity of Jacques but expresses gratitude.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c49&lt;br /&gt;
|&lt;br /&gt;
| Riker receives a report from Mario that the others display no unusual activity except for intercepting the probes that riker had ordered sent into the other system. Riker decides he must increase the surveillance operation in order to find out where the other&#039;s activity is located.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c50&lt;br /&gt;
| &lt;br /&gt;
| Bob decides to leave a magnetically anomalous [[Monolith (Space Odyssey)|monolith]] on the moon of Eden for future Deltans to find. The training of carrillion nappers goes smoothly. Robert contemplates the mortality of Archimedes whose cough persists after his kidnapping beating. Robert notes that the deltons have progressed little as a civilization towards industry.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c51&lt;br /&gt;
|&lt;br /&gt;
| Bill holds a moot. Mario presents Other surveillance data for GL 877. Herschel summarizes Hulk-1 analysis. Garfield explains advances in strategic military technology; Many Bobs carrying bombs remains the central doctrine. Riker summarizes Sol defense strategy for when Others launch an attack expedition. Neil interrupted and claims Others likely have already launched an expedition but through a circuitous route. Bill and Riker decide to reschedule all production to create 80 000 drones to scan a circle of 12 square light years around Sol.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c52&lt;br /&gt;
|&lt;br /&gt;
| The last crops of humanity on Earth fail. The UN begins voting process to accept one of Riker&#039;s plans.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c53&lt;br /&gt;
|&lt;br /&gt;
| Bill tries and fails to convince Claude at gamma pavonis to join efforts to defend a solar system. Claude says the best way forward is to use exponential growth to develop an attack force in gamma pro bonus and then attack the others when they have Superior forces, not to defend Sol. Bill thinks about how Jacques refused to give up any biosamples to begin any efforts to revive the ecosystem on the path homeworld in Delta pavonis.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c54&lt;br /&gt;
|&lt;br /&gt;
| Riker attends a party for Justin&#039;s 75th birthday. Riker confesses that Justin is the last relative that he has been keeping in touch with.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c55&lt;br /&gt;
| &lt;br /&gt;
| Bill takes a break from other preparation and walks across Ragnarok in his Android form. Build contemplates converting Ragnarök into a nature preserve.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c56&lt;br /&gt;
| &lt;br /&gt;
| Howard and Bridget deploy floating test city Rivendell Mark 2 in the atmosphere of Odin. A blimp mounts the city dome.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c57&lt;br /&gt;
| &lt;br /&gt;
| Riker detects am Other convoy. Riker and Bill announce the discovery and hold a moot three hours later. Battle strategies are discussed. Garfield argues that the enemy&#039;s current relativistic velocity would make them vulnerable to laser weaponry due to shortened reaction time.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c58&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil approach soul system. Riker joins their VR and informs them of the other invasion. Riker Herschel and Neil discuss the ethics of selecting who to save and who to leave behind due to the limited stasis pod capacity.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c59&lt;br /&gt;
|&lt;br /&gt;
| Howard and Bridget are invited to a Howie&#039;s wedding. Howard and Bridget attend the Catholic wedding and meet Howie and his bride. Bridget learns that Rosie has cut her family out of her life and that Rosie is moving to Romulus in order to distance herself from her entire family on Vulcan. Howard consoles. Bridget saying that there is limits to accommodating people.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c60&lt;br /&gt;
|&lt;br /&gt;
| Riker, Thor, and other Bobs defending Earth perform a sneak attack and successfully detonate many fusion bombs, destroying Other ships.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c61&lt;br /&gt;
|&lt;br /&gt;
| Bob cares for Archimedes who is dying of old age.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c62&lt;br /&gt;
|&lt;br /&gt;
| Howard and Bridget enjoy life in the floating city of Tantor on Big Top, gas giant of Epsilon Indi. Howard notes Tantorʼs population has grown to 1 million after people migrated from Quiltʼs relatively hostile environment. Bridget tells Howard she wishes to adopt children.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c63&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil begin parking the &#039;&#039;Bellerophon&#039;&#039; into Earth orbit. Herschel realizes from a stray comment between Bill and Neil that the mover plates used to accelerate and decelerate the ship are powerful enough to allow atmospheric entry and hovering. Will and Bill approve atmospheric entry, bypassing UN decision-making. Herschel lowers the 10 kilometer ship and pressurizes the interior with atmosphere. Refugees swarm the first transports resulting in several deaths. Herschel completes the first of 10 pickups for the 21 enclaves.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c64&lt;br /&gt;
|&lt;br /&gt;
| Riker oversees the defense of Earth. The Others fire an unexpected super ping after the first, revealing the Jokers, a secret relativistic attack force. The initial defense only reduces Others numbers by a third.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c65&lt;br /&gt;
|&lt;br /&gt;
| Herschel, Neil, and Will work to clean up colonist vomit and excrement as the &#039;&#039;Bellerophon&#039;&#039; picks up refugees. Bill warns the Others are almost within Zapping range.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c66&lt;br /&gt;
|&lt;br /&gt;
| Will returns to lead defense. Several Death Asteroids approach and begin zapping Earth. The Death asteroids attacking Earth are destroyed but the main Other attack force is winning against the main Bob defense force.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c67&lt;br /&gt;
|&lt;br /&gt;
| Herschel pilots the &#039;&#039;Bellerophon&#039;&#039; to avoid incoming zaps. Cuba is hit, killing all refugees there awaiting pickup. Herschel makes the last pickup and accelerates the ship hard away from battle. Will declares the engagement over.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c68&lt;br /&gt;
|&lt;br /&gt;
| More battle. Will orders the Jokers to launch and detonate their nukes to take advantage of the [[Doppler effect]], effectively zapping the entire battlefield. All Others vessels go inert and many Bob dreadnoughts are damaged. Thor and the few remaining Bobs begin systematically nuking all remaining Others vessels. Will and Bill declare the battle over&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c69&lt;br /&gt;
| &lt;br /&gt;
| Bob wakes up to find Archimedes dead. Bob leaves a camouflage drone in Archimedes&#039;s grave during the funeral. Bob reveals to Buster his true identity and departs the village in a cargo drone.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c70&lt;br /&gt;
|&lt;br /&gt;
| Daedalus and Icarus arrive at GL 877 with two planets in tow traveling at nearly the speed of light. They slam the two planets at the star from opposite ends at the poles. They escape as the Star is forced to go nova,  destroying the Others&#039;s [[Dyson sphere]] and sterilizing all life in the star system.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c71&lt;br /&gt;
|&lt;br /&gt;
| Herschel, Neil, Bill, and Will celebrate the victory. Will decides to keep the refugees who were put into stasis in stasis due to continuing decay of habitability of Earth. Refugees without stasis pods will soon have them thanks to the influx of materials brought into system in the form of Others wrecks.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c72&lt;br /&gt;
|&lt;br /&gt;
| Bob vents to Marvin about his time on Eden with Archimedes. Marvin asserts that Bob is alive and more than just a computer program due to their desire to form relationships with others. Bob resolves to move on. Bob visits Eden one last time then leaves.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c73&lt;br /&gt;
|&lt;br /&gt;
| Thor calls for a moot. Thor demands that humans be notified that he and many other bobs refuse to save humans in the future from future disasters due to the fact that they, the bobs have been performing menial work without much reward to save ungrateful humans when the prospect of exploration lies out there.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c74&lt;br /&gt;
|&lt;br /&gt;
| Jacques breaks the news of the defeat of the Others to Hazjiar of the Pav. Jacques announces that the Bobs with withdraw their direct interactions with the Pav now.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c75&lt;br /&gt;
|&lt;br /&gt;
| Herschel and Neil depart Sol system with stasis humans en route for [[82 Eridani]]. Another colony ship has since departed to colonize [[Gamma Pavonis]]. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| c76&lt;br /&gt;
| &lt;br /&gt;
| Bob makes a pilgrimage to Las Vegas on Earth. Bob thinks about the start of his story when he visited the same city with his co-workers. Bob meets with with Bill and will who land in a cargo drone to talk with him. Bob notifies them that he has decided to go exploring into space, cutting all ties save for a chain of SCUT relays to keep him connected to BobNet.&lt;br /&gt;
| Bob, Bill&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b4|Book 4: Heaven&#039;s River]]====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p2c33 (67). Bob returns to Misty Falls to find Theresa. Bob arrives at her facility residence with address information provided by ANEC. Belinda greets Bob who appears as Enoki. Bob sees two well-behaved badgers just sentient enough to speak a greeting before scampering off. Theresa greets Enoki and says she suspects he is connected to the Bawbe that is changing her world. Bob offers to grant Theresa&#039;s wish to learn more about her own world and the world outside Heaven&#039;s River.&lt;br /&gt;
&lt;br /&gt;
p2c32 (66). A summary of various narratives. ANEC disassembles Planet 1 for materials. Bridget and Steve explore Heaven&#039;s River. Bill explains his suspicious that the Skippies played Starfleet into being relatively non-violent so as to disrupt Bob&#039;s relay station so Hugh could kick Bill, Garfield, and Bridget from the expedition. Bob agrees, saying he believes Hugh transported himself to Eta Leporis to secure access to make a deal with ANEC. Bob explains Quinlan history and how ANEC ended up taking technology away from the quinlans. &lt;br /&gt;
&lt;br /&gt;
p2c31 (65). ANEC meets with Bill, Will, Garfield, and Hugh at a meeting before the main moot. They establish policies of territory, trade, and technology transfer. The moot starts. ANEC and Hugh are targets of much criticism. ANEC says Heaven&#039;s River is open to receive human colonists. Hugh explains that ANEC&#039;s megastructure knowledge will allow any star system to become a colonization candidate. ANEC meets with Howard, Bob, and Garfield at a virt bar after the moot. They discuss [[AI alignment]] issues. ANEC says artificial intelligences can be created with or without consciousness and with it without free will.&lt;br /&gt;
&lt;br /&gt;
p2c30 (64). Bob boots Bender up. Bender is ecstatic to have a VR body to enjoy coffee again. Bender is welcomed back by the rest of the quinlan expedition team. Steve Gilligan is also in attendance. Hugh restores control of Bob&#039;s communication relay. Hugh explains the deal he made with ANEC on behalf of the Bobiverse. ANEC receives SURGE drives, SCUT communications, and SUDDAR technologies in exchange for the technology to create artificial intelligences. Bill protests that Hugh had no right to give away such technological advantages. Hugh argues the Bobiverse is a herd of cats and no individual can enforce intellectual property due to lack of a formal government. Hugh argues artificial intelligence is technology they will share which will benefit everyone, especially in the effort to understand why civilizations more advanced than themselves are not not commonplace. Hugh departs. Bob tells Bridget that the topopolis is open to receive guests. Steve Gilligan receives permission from Garfield to borrow their quinlan Manny to explore Heaven&#039;s River with Bridget. Bender goes to meet up with old friends.  Bill announces that ANEC will attend a moot that day. &lt;br /&gt;
&lt;br /&gt;
p2c29 (63). Bob escapes his pursuers when they fall victim to another final group of pursuers: Resistance versus Crew again. Bob rests to cool down. Bob calls Hugh who says he is in manacles and being hauled off in a &#039;&#039;hown&#039;&#039;-drawn vehicle somewhere. Bob calls Bill who says the recent meeting with Starfleet was not satisfying. Bob continues his journey to the transit station. Bob finds the underground entrance the Gamers dug to be swarming with quinlans. Bob attempts to surreptitiously gain entrance but is immediately confronted by many quinlans. A quinlan pauses the others from attacking Bob to take a call; Bob is tackled and separated from Bender&#039;s matrix. Bob complies in order to prevent the matrix from being harmed. Bob tells a quinlan that the matrix is his friend and relative; the quinlan accepts the idea that the matrix is a person since they already know the Administrator is not a biological quinlan. Bob is brought to a room to speak to the Administrator who calls themselves ANEC. ANEC interrogates Bob; Hugh urges Bob to tell the complete truth about their mission to rescue Bender. ANEC takes time to think. Bob waits. Bob is released from confinement and reünited with Hugh. ANEC makes a global announcement to all quinlans stating that their three century-long deprivation from technology that would see them extinct has ended. Hugh says he made a deal with ANEC but refuses to elaborate until Bender&#039;s matrix is safely escorted out of Heaven&#039;s River. Gandalf pilots a drone to pick Bob, Hugh, and Bender&#039;s matrix up at a space port dock.&lt;br /&gt;
&lt;br /&gt;
p2c28 (62). Bill holds a moot for Lenny to make a presentation on behalf of Starfleet. Lenny appears and announces Starfleet is returning control of the equipment they seized. Lenny gives a map showing Starfleet space and says they have forked BobNet into a separate physical territory. Bill observes that Starfleet did not win. Lenny insists Starfleet accomplished what they planned to do. Starfleet disconnects.&lt;br /&gt;
&lt;br /&gt;
p2c27 (61). Bob and Hugh arrive at the portion of the Arcadia close to Garack&#039;s Spine. They proceed under cover of night towards the town. They sneak into town. Fog descends. They are pursued by masked quinlans. They realize the town is effectively under scattering conditions meant to capture them. They escape onto the roof of a residence then make their way downstairs. They are grappled by many masked quinlans. Hugh draws aggro so Bob can escape.&lt;br /&gt;
&lt;br /&gt;
p2c26 (60). Bill reviews the status of the Bob vs. Starfleet conflict. Most communication relay stations are down. Will visits Bill to notify him the UFS voted to annex the systems around Pav. They discuss plans underway for Bobs to occupy those systems first in order to reserve them for the Pav&#039;s use in the future.&lt;br /&gt;
&lt;br /&gt;
p2c25 (59). Bob and Hugh arrive in the Garack&#039;s Spine segment. They strategize for how to transfer from the Nirvana to the Arcadia. They decide to swim towards the rough transfer tributary and then walk the rougher length. Bob buys waterproofing supplies from a store at closing time to avoid guards. Hugh and Bob make the trip; they almost run into some lounging guards on land. They complete their transfer to the Arcadia, build a hidden nest, then rest in virt.&lt;br /&gt;
&lt;br /&gt;
p2c24 (58). Lenny asks Bill for a call. Bill grudgingly agrees. Lenny says their actions to split the monolithic Bobiverse is succeeding. Lenny reveals that Starfleet&#039;s main objective is to mitigate damage from a hazard that loses a much greater threat than the handful of stations destroyed in the civil war so far. Lenny ends the meeting before providing any substantial information.&lt;br /&gt;
&lt;br /&gt;
p2c23 (57). Bob and Hugh take turns swimming in the Nirvana towards the segment with Garack&#039;s Spine. Bob reviews a message from Bridget in which she explains the badger was actually a young feral quinlan who missed the window for gaining language and thus intelligence. Bob visits Will who confesses they have long departed 82 Eridani in pursuit of colonizing a far off world. Bob expresses interest in the project. Eight days later, Bob and Hugh&#039;s strategy of swimming at night with Bender&#039;s waterproofed package floating on the surface fails; four boats converge on their location. They split up, separating the waterproofed package container from the waterproofed vellum wrapped matrix; Hugh dives underwater to then latch onto the hull of one of the pursuers; Bob swims loudly toward shore with the Benderless package. Bob spots and destroys a surveillance bird with an iron money piece. Bob loses his pursuers while Hugh remains hidden on the hull of the unaware pursuit ship.&lt;br /&gt;
&lt;br /&gt;
p2c22 (56). Bob escapes from jail in Six Hills using fleas. Bob incapacitates the two cops on night watch and flees eastward after the &#039;&#039;Clipper&#039;&#039;. Bob takes on the appearance of one of the cops he incapacitated, calls himself Wyatt, and reboards the &#039;&#039;Clipper&#039;&#039;. Bob brainstorms strategies for getting Bender&#039;s matrix and himself off the ship and into the next segment. Bob notices more &#039;&#039;firl&#039;&#039;s swarming packages. Bob warns Hugh that the small birds are part of the Administrator&#039;s search methods and their search radius now likely includes Hugh&#039;s location near Garack&#039;s Spine as well. Bob holds an emergency meeting; Bob decides to flee on land, risking exposure to the surveillance birds. Bob builds a nest in tall grass and rests. Bob calls Hugh. Before Bob can broach the subject of Hugh&#039;s likely interest in the Administrator, the rest of the expedition crew joins. Bob debriefs them and explains his options are very limited. Hugh, who is now only one segment away, volunteers to join up with Bob with his full complement of spiders, fleas, and money earned from working as a deckhand. Hugh recommends that Bob travel inland away from the river. Bob agrees. Bob finds a small cave to hide in but the resident badger attacks him. Bob kicks the badger away but injures his leg. Bob escondes deep inside, letting the badger occupy the outer length of the cave. Bob repairs his body. A &#039;&#039;firl&#039;&#039; examines the cave but is chewed up by the badger. A quinlan search party approaches the cave but is repelled by the badger. Hugh later successfully hones in on Bob&#039;s spider&#039;s radio signal and baits the badger out long enough for Bob to vacate the cave uninjured. Hugh and Bob seal and waterproof Bender&#039;s matrix in pitch and wax vellum.&lt;br /&gt;
&lt;br /&gt;
p2c21 (55). Bill visits Charles who summarizes reclamation efforts to restore Earth back to habitability. Bill shares sadness for the loss of unity following the defeat of the Others. Charles says the current unrest is part of a natural long term cycle that will turn more pleasant eventually.&lt;br /&gt;
&lt;br /&gt;
p2c20 (54). The cops ask to examine Enoki&#039;s luggage. Theresa name-drops herself as Theresa Sykorski of University of Peachland and asserts what Enoki is her hired porter. The cops let her and Enoki go. Theresa and Enoki part ways. Bob drops the Enoki disguise and packages Bender&#039;s matrix in a postal package. Bob joins the crew of the &#039;&#039;Clipper&#039;&#039; as a deck hand named Sam. Bob meets a sabbat group consisting of Tina, Fred, Tony, and Barb. Bob notices Tina is the only talkative member of the group. During a sleep cycle, Bob discusses his suspicions of declining Quinlan intelligence with Will, Bill, Bridget, Garfield, and Hugh. They agree the Administrator should be contacted and be made aware of the long term threat to Quinlan intelligence but after Bender is secured.  Bob notices Hugh dislikes Bob&#039;s theory that the Administrator, an artificial intelligence Bob suspects is the main objective of Hugh&#039;s Skippy faction, seeks to breed out Quinlan intelligence in order to make them a more compliant and less self-destructive species. While working as Sam, Bob notices a &#039;&#039;firl&#039;&#039;, a small bird species, ignoring food scraps and inspecting package shipping labels. Bob and Bill privately agree that the Administrator could have miniaturized ornithopter technology. The &#039;&#039;Clipper&#039;&#039; arrives at Six Hills. Sam and a package with his label is taken into custody by local police; Sam had switched labels. A cop warms Sam that Crew are not mythology and they are coming to examine him and his package.&lt;br /&gt;
&lt;br /&gt;
p2c19 (53). Howard and Bridget discuss the political repercussions suffered by those fighting against replicants. Voters are anticipating that their rights in the afterlife will be taken away. If replicants today, have their rights taken away. Bridget shares with Howard, a colonization candidate found by Mario as Mario searches for Other nests. Howard notices the colonization candidate is even more biologically interesting than quilt a species of flying monkey.&lt;br /&gt;
&lt;br /&gt;
p2c18 (52). Snidely avoids Bob. Theresa teaches Bob about the Iron, Silver, and Golden rules. They arrive at Orchard Hill. Snidely calls cops to accuse Bob of being the wanted criminal. Bob shows the constable his luggage is full of ordinary items. Snidely disembarks. Bob discusses moral philosophy with Theresa. Theresa catches Bob at night swapping back the matrix into his own luggage. Theresa shares her conclusion that Bob is from outside Heaven&#039;s River. Bob verbally confirms her suspicion. Bob says the Administrator is an engineering construct. Bob says he himself is retrieving an item he made that the Administrator took which the Resistance stole. Bob says he will run before committing murder. Theresa believes him given his knowledge of moral philosophy and wishes him well. Bob and Theresa prepare to disembark the &#039;&#039;Hurricane&#039;&#039; at Misty Falls. Cops await them.&lt;br /&gt;
&lt;br /&gt;
p2c17 (51). Bill joins Gandalf and other Gamers on another dungeon raid. They are betrayed by Kevin but rescued by Tim. After the game, Gandalf says Kevin, a clone descendant of his, has drifted significantly away from Bob-like behavior but says the phenomenon is not bad. Gandalf says more individualistic people makes for more interesting gameplay. Gandalf says Bill&#039;s previous session with the Gamers even included non-Bob replicants from a post life arcology. Bill says he will try to see people more as individuals. &lt;br /&gt;
&lt;br /&gt;
p2c16 (50). Bob purchases a trunk in order to store Bender. Bob decides to pose as a ship worker using Hughes occupation null experience as a template. Bob gains employment as a worker on a ship and gets his luggage taken aboard for travel along the Nirvana River. A paid passenger that Bob names s snidely whiplash boards the ship as well. Bob manages to hide his luggage from a cargo inspection targeting his description by using pompous clout of Snideley Whiplash who insists on his own wine trunk not to be inspected. A pair of passengers, Theresa and Belinda, board the ship; Belinda is mostly non-verbal; Theresa is an academic who taught Philosophy, Math, and History. Bob listens to several philosophical debates between Frieda, deckhand Oric, Snidely, and Theresa. Snidely is an atheist who insists Heaven&#039;s River is a natural environment. In order to appeal to Theresa, Bob pretends to have engineering education by insisting Heaven&#039;s River is artificial. Bob presents a thought experiment to Theresa of whether a replicant is the same person as the one whose memories they carry. At night, Bob catches Snidely attempting to open Bob&#039;s luggage. Snidely accuses Bob of tricking the cargo inspectors. Bob threatens to kill Snidely if he molests the luggage again.&lt;br /&gt;
&lt;br /&gt;
p2c15 (49). Howard and Bridget express exasperation with political sentiment currently aiming to confiscate their wealth. They reässure themselves with their vast wealth over humans due to their business interests, majority ownership of Trantor, large number of lawyers, and ability to outlive ephemeral political movements. Bridget says she wants to go on an expedition; Neil and Herschel&#039;s venture will start later than Bridget likes.&lt;br /&gt;
&lt;br /&gt;
p2c14 (48). Bob uses elevators to cross from the Utopia River side to the opposing Nirvana river side via the central spine. Bob finds Natasha&#039;s card and a recently purloined card useless for calling a train.  Bob calls Hugh to report he has Bender&#039;s matrix but is unable to provide his own location for extraction from outside Heaven&#039;s River. Bob carries Bender awkwardly into the town Forest Hill. Bob decides to store Bender in a funerary box, pretending that he is carrying the ashes of an ancestor. Bob gets a room at an inn. Bob asks merchants for a box but he finds all options out of his price range. Bob receives an alert from a spider sentinel in his room of an intrusion attempt foiled by his roamer-secured lock. Bob returns to his room and gathers his supplies. Bob escapes pretending to be staff carrying out garbage. Bob flees some pursuers and escapes out of town. Bob sleeps in a tree. Bob attempts to contact his expedition crew members but finds them all unavailable and busy with other activities. &lt;br /&gt;
&lt;br /&gt;
p2c13 (47). &lt;br /&gt;
&lt;br /&gt;
p2c12 (46). &lt;br /&gt;
&lt;br /&gt;
p2c11 (45). &lt;br /&gt;
&lt;br /&gt;
p2c10 (44). Bob makes his way to a transit station. Bob modifies his facial features using customization instructions from the Borg. Bob uses the ID card that he stole during his encounter with Frida and Popeye at Natasha&#039;s house. Bob gains access to a train bound for Halep’s Ending, the town Bender said he often heard about by his captors.&lt;br /&gt;
&lt;br /&gt;
p2c9 (43). &lt;br /&gt;
&lt;br /&gt;
p2c8 (42). &lt;br /&gt;
&lt;br /&gt;
p2c7 (41). &lt;br /&gt;
&lt;br /&gt;
p2c6 (40). Bill and guard discuss how Starfleet is being hindered by civilization. Cutting off contact with Starfleet operations. They contemplate physical war against Starfleet assets.&lt;br /&gt;
&lt;br /&gt;
p2c5 (39). Bob receives notification that. Hugh has booted up locally in The matrix that he printed for himself. Bob and Hugh engage in a discussion about why Hugh shut down his original matrix before starting in the matrix that is in Ada labor&#039;s. Hugh shares with Bob research for the skippys that indicates that replicative drift is entirely avoided. If a replicant uses only a single matrix at a time; whenever a second copy of replicant is booted the second encounters behavioral differences. Bob, notes in summary that this is basically meaning that a new quote&amp;quot; soul is created to occupy replicant copies. Hugh and Bob discuss his strategy for exploring heaven&#039;s River exploring One direction while he explores in the other.&lt;br /&gt;
&lt;br /&gt;
p2c4 (38). And company invert discuss the fact that Starfleet embedded a route kit in the standard auto factory operating system since 10 years ago. Will lament humans will distrust Bob&#039;s even further which could lead to conflict. Bob notes that almost completes loss of all adju Factor capability by his faction outside of Starfleet will hinder economic output significantly.&lt;br /&gt;
&lt;br /&gt;
p2c3 (37). Bob attempts in escape via water but is caught in some Nets. Popeye hauls him up to the surface and stabs him in the leg. Bob escapes Popeye and Frida through much effort and loss of a all his rumors. Bob escapes on land. Bob travels back to the underwater mayonnaise and retrieves money and supplies.&lt;br /&gt;
&lt;br /&gt;
p2c2 (36). Will visits Steven the replicant expert on megastructures. Steven points out to the importance of the train that worked within heavens River.  Steven points out the importance of baffles in the design of the topopolis Evans River. Steven indicates points of interest that Bob may find useful, specifically one near a river that may lead to the baffle interior. &lt;br /&gt;
&lt;br /&gt;
p2c1 (35). Bob and Bender (a.k.a. &#039;&#039;&#039;Motorola&#039;&#039;&#039;) positively confirm eachother&#039;s identities in English. Natasha grows suspicious. Bob and Bender pretend to be long lost friends from a scattered community called the Salty Seas clan speaking Salty Seas creole (i.e. the [[English]] they are speaking). Natasha orders Bob to be executed. Bob breaks free, steals the radio, and escapes Natashaʼs compound. At a safe distance from pursuers, Bob rests the manny and contacts Bender again. Bender says he may be near a place called Halep&#039;s Ending. Bob pings Bender&#039;s location and narrows down his location to a 5000 kilometer region of the Heaven&#039;s River megastructure using a [[light speed]] [[Distance-bounding protocol|ping technique]]. Bender&#039;s radio signal to the Heaven&#039;s River intranet is cut off. Bob reports back to the exploration team his findings. Bob finds that Hugh took over an autofactory, began printing a replicant matrix for himself to join Bob, and began sending his backup to Bobʼs autofactory. Bob orders sensor drones to begin scanning the megastructure for Bender. Guppy reports the operation will take between 3 weeks for one unit to begin scanning and a year for twelve.&lt;br /&gt;
&lt;br /&gt;
p1c34. Bob is taken out of their barricaded prison room, bound with metal metal manacles, and taken by Frida and Popeye to another location via a cart. Bob is taken to the residence of a wealthy Quinlan named Natasha. Natasha. Attempts to find. Bob &#039;s. Master and their loyalties. But Bob insists that he and the other three quidlets that he is with are simply looking for their friend. Natasha brings out a radio device to talk to Motorola. Motorola asks Bob questions. Natasha grows tired of the slow pace of progress that Motorola is doing and orders a torturer in to torture Bob. Bob threatens the torturer with explosive self-destruction. Motorola says in English to Bob an old Bob saying about disliking explosives. Bob asks if Motorola is Bender. &lt;br /&gt;
&lt;br /&gt;
p1c33. Garfield&#039;s informs Bill that Starfleet has begun shutting down most Auto factory capabilities. Bill agrees to meet with Starfleet. Bill threatens to to Nuke stations containing locked Auto factories. Starfleet States that they have begun to print busters and weapons in order to defend their assets. Bill points out that starfleet gained power by stealing equipment. Bill declares war. Later, at a moot Bill and company work to prepare to fight Starfleet which has pulled most public information about themselves from availability. Thor informs Bill that Marcus found a way to recover relay stations that bypass the self-destruct mechanism that Starfleet had implemented.&lt;br /&gt;
&lt;br /&gt;
p1c32. Bob, Garfield and Bridget decided to let Bob&#039;s many get captured in order to collect information. Bob and the other three mannies, being crudely remote controlled by AMI routines, Make their way to the library of Three lagoons. They quickly develop a tail. Bob continues to the library while the three remote controlled menis make their way away to escape pursuing quinlan&#039;s follow. Bob and surround him near the library. At least two factions of quinlans fight each other for dibs on Bob. Bob, lets himself get captured in a tackle. Bob is taken into custody of a a resistance leader named Frida and her lackey Popeye. Bob is interrogated with painful electric current from a battery and pair of wires. Bob throws Popeye against a wall. Bob is imprisoned for the night. Upon hearing about the commotion in Bobnet, Bob changes his keys. &lt;br /&gt;
&lt;br /&gt;
p1c31. Bob, Bill, Garfield, Bridget and Hugh meet invert in order to discuss future plans for the exploration of Evans River. Bridget again floats the idea of replicating herself, but this time with the constraint that only one instance of herself be allowed to run at any one time. Hugh asks to pilot a manny but Bob asserts that Will is their dedicated backup. Hugh shares that analysis of acoustic data in Three Lagoons indicates the presence of at least two groups: Administration and Resistance. They vote to have Bob explore.&lt;br /&gt;
&lt;br /&gt;
p1c30. Garfield calls Bill in order to discuss patterns of the network compromises on bobnet. Bill and Garfield conclude that the machines that were compromised were ones that bill had recently changed the keys for. Bill calls a moot in order to broadcast this new information on the network outages. A star fleet member named Lenny sounds a horn and announces that Starfleet claims responsibility for the network outages. Before Lenny can explain their justification Bill immediately cuts them off and accuses them of forcing other bobs to submit to their political violence before booting Lenny out. Bill declares Starfleet an enemy and recommends that all bobs secure their systems and use his own server as a starting point. Bill sends the source code for the VR conference program to the Skippies via Hugh. Hugh immediately calls Bill back and they have a conversation about artificial intelligence and the Skippy&#039;s project create a [[Matrioshka brain]]. To that end, Hugh confesses that skippies have not yet attained artificial intelligence but they did analyze the source code for the moot program and found that Starfleet has embedded malware in order to insert listening programs which they used to compromise Bill&#039;s communications. Starfleet captured keys that bill had transmitted to various unmaintained Network nodes and used those keys to gain exclusive control of those machines; Starfleet then used their access to create the network outage. Later, Bill and Garfield review the attack. They discuss the political demands Lenny didn&#039;t get a chance to voice that Bobs must desist from interfering in indigenous species. &lt;br /&gt;
&lt;br /&gt;
p1c29. Bob takes control of the mannies that Bill Garfield and Bridget were controlling and directs them to the bottom of a nearby River so he can figure out what is going on. Bob discovers that Bridget, Bill and Garfield are out of contact due to the failure of a communication node, specifically the one that he created in Delta eridani and ordered to a Midway point to provide scut communication services. Bob discovers with guppy that the relay answers to pings but refuses any other commands including diagnostics. Bob discoveries that a drone that he had sent to the same location as the relay to act as a temporary scut relay is able to provide low bandwidth communication services and so he uses that to contact bobnet. Bob contacts Bill via an audio only channel notifies Bob, that&#039;s half of Bobnet is out of communication and the network is severely fragmented. Bill reports that Bridget&#039;s location on quilt is unavailable. Bill reports to Bob that that Hugh of the Skippies is in communication. Bob decides to move the drone that he has control of to physically inspect the communication relay from Delta eridani in order to determine the cause of the communication cutoff. Bob takes roamers from the other mannies and enters Three Lagoons by himself. Bob checks into a hotel and goes to sleep and then introvert. Bob receives a call from Bridget who floats the idea of replicating herself to a local copy to avoid the Network outage probably; promises to consider the possibility. Hue of the skippies calls. Bob and asks if he can print a replicant matrix so that he can send the copy of himself to join the Expedition locally. Bob agrees to print some matrices locally. Bob explores the local library. Bob decision called from Bridget. Bob tells Bridget that his readings had informed him that Evans River is a structure that existed before the destruction of the planets. Quinn. Bob estimates the mega structure age roughly 500 years. Bob and Bridget, the site that the heavens River administration is very unlikely to be open to dialogue with alien spies such as themselves. &lt;br /&gt;
&lt;br /&gt;
p1c28. Will sits in as a representative of the bobs at the United federation of sentience. The main topic of discussion is have military fleets in in violating Sovereign boundaries of nearby human star systems. Will lament that human politicians are underestimating the military capabilities of the pav as well as mishandling the situation by preemptively claiming All-Star systems adjacent depth which would do nothing except antagonize the pav.&lt;br /&gt;
&lt;br /&gt;
p1c27. Bob, Bill, Garfield and Bridget part ways with car on the riverboat and head for Three lagoons. Bob and company split up bridge it to the library. Bob and Bill. 2 bar crawl and Garfield to secure lodging. After an hour. Bob notices Bridget is unresponsive. Bob discovers that that everyone except him is out of contact.&lt;br /&gt;
&lt;br /&gt;
p1c26. Bill returns to vert to take care of some chores. Bill finds multiple login attempts to Auto factories using old outdated Bob plug-in credentials. Bill and Garfield discuss the high probability that start is attempting to take violent action in order to promote their political view of non-interaction with biological life. Bill and Garfield discuss the lack of allies that they have for preserving relations with biological humans. The gamers are obsessed with virtual fighting and you biologicals as a distraction; mentions that their main backup server has been moved several times and is likely out of danger and reach from Starfleet yet not from his own recent clones. Bill and Garfield despair that Utopia is unstable.&lt;br /&gt;
&lt;br /&gt;
p1c25. Bob and company arrive in Elba. Bob&amp;amp; company approach a library. After asking for directions. They are followed and find that the directions they gave designed to make them vulnerable to a ambush. Bob and company use their super Quinlan Powers too. Break out of the surround and hide on a rooftop. Bob and company decide to escape to the river and swim underwater downstream for many hours until they get two towns downstream. Bob and company arrive at a larger town called first stop. Bob and company arrive at a restaurant and eat steak. They split up and search the town separately. Some Marco Bridget searches the library. They reconvene and discuss their findings. Bridget found deprived of their knowledge and wisdom in ancient times due to their defensively for conflict and fighting. The departs town and swim downstream. They find find a riverboat with some sabitarians. They meet Kar, Malin, Arik, and Ti. Kar believes Quinlans should give up ambitions and simply enjoy life. Bob and company speculate that Quinlans on Heaven&#039;s River will eventually breed out intelligence due to having their needs met.&lt;br /&gt;
&lt;br /&gt;
p1c24. Bob discusses details about Quinlan weaponry. Bob visits Will on Valhalla. Will warns Bob of the panoply of divergent Bobs splitting into different factions and spreading physically through space.&lt;br /&gt;
&lt;br /&gt;
p1c23. Bill plays with the gamers in a battle against a red dragon. Bill luckily defeats the dragon by sticking a magic staff into the anus of the dragon. Bill asks Gandalf why the gamers have pulled back their activity regarding the topopolis exploration. Gandalf answer is that the topopolis project no longer interests them.&lt;br /&gt;
&lt;br /&gt;
p1c22. Bob Bridget&#039;s and Garfield subdue their attackers. They follow a blood trail to find where Steve was taken. They conclude that ski was taken voluntarily. The blood trail ends at a hotel. They retreated to a pub. They found that Steve departed town. They find that several people in the bar they are at have been observing them. Upon attempting to exit the town they are attacked by various quinlans. They fight their way out of town.&lt;br /&gt;
&lt;br /&gt;
p1c21. Bob, Bridget, Bill, and Garfield wake up and find evidence of a night predator that visited their nest. They make they way along a river to Galen Town. Bob eavesdrops in a bar and learns that some of the people there are planning to attack a person named Steve whose activities these people fear will draw the attention of the administrator and cause a scattering. Bob and company decided to try and warn or intercept this person named Steve. Bob&amp;amp; company follow the aggressors out of a bar. Bob&amp;amp; company or ambushed by assailants. Bridget is stabbed. Bob manages to fend off a stabbing attack. Garfield wields a quinlet. Garfield is shot at point blank range.&lt;br /&gt;
&lt;br /&gt;
p1c20. Marcus asks Maleb to harden harden security surrounding Poseidon Auto factories. Maleb is suspicious to take action to a priority of certain security projects.&lt;br /&gt;
&lt;br /&gt;
p1c19. Bob wakes early in the inn at Garack’s Spine in order to see the sunrise. He is joined by Bill who speculate on what makes the sky blue. Will says via intercom that it is a hologram. Bridget and Garfield join them. The belligerent cop harasses them to move along. Bob eavesdrops at a local pub and hears rumors of military conflict and the loaded term “scattered” in the context of civil punishment. Bob looks into a cart on the street, the cart hauler cries thief, and the belligerent cop moves to arrest Bob. Bob resists arrest and capture by passerbys eager for a brawl. Bob and company flee Garack’s Spine. They float down river, find a secluded hiding spot, then meet up in virt.&lt;br /&gt;
&lt;br /&gt;
p1c18. Will and Howard explore Quin in Quinlan mannies. Howard gets his manny nearly destroyed after getting caught in an underwater current through some pipes.&lt;br /&gt;
&lt;br /&gt;
p1c17. Bob, Bill, Garfield, and Bridget pilot their mannies and enter the topopolis. They find a welded-shut mass transit hub. They enter the main habit area. They swim down a river until they reach a settlement. A local law enforcer warns them not to cause trouble. They pay for a room at an inn. They debrief in virt. Bob reminds everyone the main objective is to find Bender or what happened to him.&lt;br /&gt;
&lt;br /&gt;
p1c16. Will meets with replicant Steven Gilligan in virt to discuss the Quinlan topopolis megastructure. Will meets with Howard in real to talk about humans piloting Mannies. Will learns that discrimination against replicants is on the rise.&lt;br /&gt;
&lt;br /&gt;
p1c15. Bob and Bridget explore a dead city on Quin. Bob admires art. They enter a government building. Bridget performs and autopsy on a Quinlan corpse and finds death was likely caused by a viral infection. Bob and Bridget test the Quinlan swimming capabilities with a game of tag.&lt;br /&gt;
&lt;br /&gt;
p1c14 Bob, Bridget Garfield and company discuss the logistics of bringing the Quinlan mannies into the megastructure from outside. They decide on four quinlan&#039;s posing as a group of four young Quinlan&#039;s on a sabbatical. The Skippies have been able to decipher the language to the extent to understand regional variability so that Bob and company will not stand out necessarily, but they are still lacking in cultural history. The Bobs propose to test run the Quinlan mannies on the Quinlan home planet Quin. Bridget warns that the test run on the planet should be one way since the war that wiped out to Quinlan may have involved infectious biological weapons.&lt;br /&gt;
&lt;br /&gt;
p1c13. Bridgeton Howard join Marcus occupying dolphin mannies to explore the ocean surrounding the mats on Poseidon. &lt;br /&gt;
&lt;br /&gt;
p1c12. Bridget asks Bob to include her on the expedition into the megastructure. Bridget expresses reluctance to replicate due to fear many Bobs would objectify her as a default girlfriend for everyone. The Skippies deduce from vocalizations of the inhabitants that they call themselves Quinlan. The Skippies deduce the megastructure&#039;s name is Heaven&#039;s River. After talking with Howard, Bridget decides against replication.&lt;br /&gt;
&lt;br /&gt;
p1c11. Bob and the Gamers penetrate the megastructure.&lt;br /&gt;
&lt;br /&gt;
p1c10. Herschel and Neil decide to join Will&#039;s new society &#039;&#039;Ever Onward&#039;&#039; to volunteer their ability to create new ships for establishing a colony far away.&lt;br /&gt;
&lt;br /&gt;
p1c9. Bob gathers Bill, Will, Garfield and volunteers to investigate the Eta Leporis megastructure and the Snarks. Bob meets Gandalf of the Gamers, Hugh of the Skippies, and Locutus of the Borg.  Bill recommends that Bridget join the expedition for her biologist experience.&lt;br /&gt;
&lt;br /&gt;
p1c8. Bob, Will, Bill, and Garfield review SUDDAR scans of the megastructure and its inhabitants. Bob presents his finding of the alien megastructure in Eta Leporis. Bob asks for help in deciphering the language of the inhabitants. The Skippies volunteer to perform language analysis. Bobs working on a giant robot spaceship as well as the Borg volunteered to design androids of the inhabitants. The Gamers propose a strategy to enter by piggybacking cloaked drones on a Boojum.&lt;br /&gt;
&lt;br /&gt;
p1c7. Will contacts Conan in [[Epsilon² Eridani]] in order to create a new society for the purpose of evacuating willing Johansson descendants. Will sees FAITH gaining power on Romulus and wishes to offer an escape option for his relatives.&lt;br /&gt;
&lt;br /&gt;
p1c1. Jacques meets with haves on their new world. Jacques, not surprised at the hostile reception he receives in a military-style tent under armed guard. Jacques with the second global pav leader after Blake. Jacques a transaction the pav leader expresses extreme suspicion as to why the bobs are giving the pads the ability to print their own Interstellar starships Jacques explains that have live in crowded neighborhood of human civilization and therefore they needs to be careful about how they can Port themselves in order to avoid conflict. Meets with Ferb who is sad at the departure of Phineas has long since departed to explore the Galaxy his time creating campaigns for live action role play bops who frankly are mean to you. Ferb secretly tells Jacques that he is planning to travel 1,000 light years ing a ship-filled with scut relays.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 4: &#039;&#039;[[Heaven&#039;s River]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| [[/b4/c0|0]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[/b4/c1|1]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====[[/b5|Book 5: Not Till We Are Lost]]====&lt;br /&gt;
&lt;br /&gt;
54. Icarus and Daedalus examine the Roanokian library in detail. They perform a SUDDAR sweep from polar orbit and find no sign of any living Roanokian. &lt;br /&gt;
&lt;br /&gt;
51. Bill comes to Charles with his suspicion that a backup of Homer existed. Charles explains that his descendant, Gerry, went mad attempting to revive Homer who stubbornly kept shutting himself off. Gerry cloned himself to duplicate Homer at scale in order to induce sufficient replicative drift to create a Homer clone sufficiently different from the original that they wouldn&#039;t shut themselves down. Gerry and his clones only succeeded in creating increasingly insane clones of Homer. Eventually, Gerry&#039;s descendents deleted Gerry. In order to hide their shame, the Gerry clones formed Starfleet in order to cut ties with humanity since they were partially responsible for driving Homer to shut himself off in the first place. Charles eventually discovered this story from a Gerry clone he recognized based on memories they shared since Gerry was descended from Charles. Charles feels guilty that his descendant, Gerry, was so monstrous.&lt;br /&gt;
&lt;br /&gt;
52. Icarus and Daedalus decide to return to inspect Roanoke for clues about why the systems in the wormhole network are mostly devoid of inhabitants. They study maintenance bots at work. They decide to build mannies. They find a bookstore. &lt;br /&gt;
&lt;br /&gt;
53. Howard leads dragons to engineer a fishing net system on floaters anchored by winches and booms. Mario warns Howard and Bridget of a wave of increased volcanic activity headed in their direction. Bridget and Alexander discover the floaters rebelling against traveling across salt water when their lower tentacles attempted to draw up salt water. They plan to induce the floaters to hoard fresh water in their body reservoir by artificially heating their backsides.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Book 5: &#039;&#039;[[Not Till We Are Lost]]&#039;&#039; chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| [[/b5/c0|0]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[/b5/c1|1]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Emacs_notes&amp;diff=198240</id>
		<title>Emacs notes</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Emacs_notes&amp;diff=198240"/>
		<updated>2026-09-25T04:29:08Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains notes for using [[Emacs]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==Commands==&lt;br /&gt;
; downcase-region&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;C-x C-l&amp;lt;/code&amp;gt;) Lowercases selected region. See also &#039;&#039;&#039;upcase-region&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; downcase-word&lt;br /&gt;
: (Shorcut: &amp;lt;code&amp;gt;M-l&amp;lt;/code&amp;gt;) Lowercases word after point.&lt;br /&gt;
&lt;br /&gt;
; capitalize-word&lt;br /&gt;
: (Shorcut: &amp;lt;code&amp;gt;M-c&amp;lt;/code&amp;gt;) Uppercase word following point.&lt;br /&gt;
&lt;br /&gt;
; fill-paragraph&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;M-q&amp;lt;/code&amp;gt;) Depending on mode, reduces column width of text to that set by &amp;lt;code&amp;gt;set-fill-column&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; query-replace&lt;br /&gt;
: Search and replace, prompting (i.e. querying) for each replacement.&lt;br /&gt;
&lt;br /&gt;
; query-replace-regexp&lt;br /&gt;
: Search and replace with [[regular expressions]]{{bkc|[[2025-01-20]]: For more on [[Emacs]]&#039;s particular flavor of [[regular expressions]], see the [https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexps.html manual]. }}, prompting (i.e. querying) for each replacement.&lt;br /&gt;
:: Use &amp;lt;code&amp;gt;\,(…)&amp;lt;/code&amp;gt; in the replacement pattern to perform [[elisp]] evaluation within the &amp;lt;code&amp;gt;(…)&amp;lt;/code&amp;gt;. For example, if the regular expression is &amp;lt;code&amp;gt;\(alice\|bob\)&amp;lt;/code&amp;gt; and the replacement pattern is &amp;lt;code&amp;gt;\,(capitalize \1)&amp;lt;/code&amp;gt;, then the text &amp;lt;code&amp;gt;alice met bob&amp;lt;/code&amp;gt; is converted to &amp;lt;code&amp;gt;Alice met Bob&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; quoted-insert TAB&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;C-q TAB&amp;lt;/code&amp;gt;) Inserts a &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; character.&lt;br /&gt;
&lt;br /&gt;
; revert-buffer&lt;br /&gt;
: Reload file to buffer, discarding changes to update to latest state currently written on disk.&lt;br /&gt;
&lt;br /&gt;
; set-fill-column&lt;br /&gt;
: Prompts setting the paragraph width produced by commands such as &amp;lt;code&amp;gt;fill-paragraph&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; toggle-truncate-lines&lt;br /&gt;
: Make long lines [[word wrap|wrap]] around to stay within view in a window.&lt;br /&gt;
&lt;br /&gt;
; text-scale-adjust&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;C-x C-+&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;C-x  C-=&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;C-x C--&amp;lt;/code&amp;gt;) Increase or decrease size of text, pressing &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to adjust. Note: only effective on GUI.&lt;br /&gt;
&lt;br /&gt;
; upcase-region&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;C-x C-u&amp;lt;/code&amp;gt;) Uppercases selected region. See also &#039;&#039;&#039;downcase-region&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; upcase-word&lt;br /&gt;
: (Shorcut: &amp;lt;code&amp;gt;M-u&amp;lt;/code&amp;gt;) Uppercases word after point. See also &#039;&#039;&#039;downcase-word&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Modes==&lt;br /&gt;
===hs-minor-mode===&lt;br /&gt;
[https://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html Reference manual].&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* Hide current block (&amp;lt;code&amp;gt;M-x hs-hide-block&amp;lt;/code&amp;gt;)&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-h&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-d&amp;lt;/code&amp;gt; (note: required for [[vg2]]&#039;s [[LXQt]] desktop environment )&lt;br /&gt;
* Show current block (&amp;lt;code&amp;gt;M-x hs-show-block&amp;lt;/code&amp;gt;)&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-s&amp;lt;/code&amp;gt;&lt;br /&gt;
* Hide all&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-M-h&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-t&amp;lt;/code&amp;gt;&lt;br /&gt;
* Show all&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-M-s&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===visual-line-mode===&lt;br /&gt;
Wraps lines at word boundaries.&amp;lt;ref name=&amp;quot;so_20100719_emacs-visual-line-mode&amp;quot;&amp;gt;[https://stackoverflow.com/users/395927/kirk-kelsey Kirk Kelsey].  ([[2010-07-19]]).  “[https://stackoverflow.com/a/3282132 How can I enable line wrap on word boundaries only in Emacs?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-03-13]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 M-x visual-line-mode&lt;br /&gt;
&lt;br /&gt;
==Useful techniques==&lt;br /&gt;
Reformat footnote numbers with &amp;lt;code&amp;gt;query-replace-regexp&amp;lt;/code&amp;gt; in [[Mediawiki]] wikicode. (e.g. link to a corresponding &amp;lt;code&amp;gt;#c4n{n}&amp;lt;/code&amp;gt; anchor in a subpage at &amp;lt;code&amp;gt;&amp;amp;#91;&amp;amp;#91;../Notes&amp;amp;#93;&amp;amp;#93;&amp;lt;/code&amp;gt;.)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
 M-x query-replace-regexp&lt;br /&gt;
 \([0-9]+\) &lt;br /&gt;
 &amp;lt;sup&amp;gt;[[../Notes#c4n\1|\1]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
 RET&lt;br /&gt;
&lt;br /&gt;
 M-x query-replace-regexp&lt;br /&gt;
 \([0-9]+\)$&lt;br /&gt;
 &amp;lt;sup&amp;gt;[[../Notes#c4n\1|\1]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
 RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Turn roman numeral subsection into roman numeral subsubsection via &amp;lt;code&amp;gt;query-replace-regexp&amp;lt;/code&amp;gt; using a [[Regular_expression#backreferences|backreference]]&amp;lt;ref name=&amp;quot;gnu_2025_emacs-replace-regexp&amp;quot;&amp;gt;“[https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Replace.html 17.10.2 Regexp Replacement]”.  &#039;&#039;[[gnu.org]]&#039;&#039;.  Accessed [[2025-10-17]].  &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
^J== \([IVX]+\) ==^J&lt;br /&gt;
;; Note: the above may be composed via: C-q C-j = = \ ( [ I V X ] + \ ) = = C-q C-j RET&lt;br /&gt;
^J=== \1 ===^J&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: This converts&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
== VII ==&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: into:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
=== VII ===&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add spaces between 3-digit number groups.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
\([0-9]\{3\}\)&lt;br /&gt;
;; Note: keystrokes: \ ( [ 0 - 9 ] \ { 3 \ } \ )&lt;br /&gt;
 \1 &lt;br /&gt;
;; Note: keystrokes: SPC \ 1 SPC&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add square brackets around 3 or 4-digit number groups.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
\([0-9]\{3,4\}\)&lt;br /&gt;
;; Note: keystrokes: \ ( [ 0 - 9 ] \ { 3 , 4 \ } \ )&lt;br /&gt;
[[\1]]&lt;br /&gt;
;; Note: keystrokes: [ [ \ 1 ] ]&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove square brackets around 3 or 4-digit number groups.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
\[\[\([0-9]\{3,4\}\)\]\]&lt;br /&gt;
;; Note: keystrokes: \ [ \ [ \ ( [ 0 - 9 ] \ { 3 , 4 \ } \ ) \ ] \ ]&lt;br /&gt;
[[\1]]&lt;br /&gt;
;; Note: keystrokes: [ [ \ 1 ] ]&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace double square brackets with parentheses. (e.g. &amp;lt;code&amp;gt;[[&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;]]&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;((&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;))&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
[]]\{2\}&lt;br /&gt;
))&lt;br /&gt;
RET&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
[[]\{2\}&lt;br /&gt;
((&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tags around content.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
&amp;lt;span [^&amp;gt;]+&amp;gt;\([^&amp;lt;]+\)&amp;lt;/span&amp;gt; → \1 &lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Emacs]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
* [https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html gnu.org manual]&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Main_Page&amp;diff=198239</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Main_Page&amp;diff=198239"/>
		<updated>2026-09-24T01:13:08Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: /* Journals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--        BANNER ACROSS TOP OF PAGE        --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;mp-topbanner&amp;quot; style=&amp;quot;clear:both; position:relative; box-sizing:border-box; width:100%; margin:1.2em 0 6px; min-width:47em; border:1px solid #ddd; background-color:#f9f9f9; color:#000; white-space:nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--        &amp;quot;WELCOME TO WIKIPEDIA&amp;quot; AND ARTICLE COUNT        --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0.4em; width:22em; text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%; padding:.1em;&amp;quot;&amp;gt;[[reboil.com wiki]],&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:95%;&amp;quot;&amp;gt;the public [https://en.wikipedia.org/wiki/Wiki wiki] of&amp;lt;br/&amp;gt;[[Steven Baltakatei Sandoval]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles exist.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--        PORTAL LIST ON RIGHT-HAND SIDE        --&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;position:absolute; right:-1em; top:50%; margin-top:-2.4em; width:38%; min-width:25em; font-size:95%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:0; top:0;&amp;quot;&amp;gt;[[Blank]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:0; top:1.6em;&amp;quot;&amp;gt;[[Special:Categories|Categories]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:0; top:3.2em;&amp;quot;&amp;gt;[[Devices]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:33%; top:0;&amp;quot;&amp;gt;[[Journals | Journals]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:33%; top:1.6em;&amp;quot;&amp;gt;[[Blank]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:33%; top:3.2em;&amp;quot;&amp;gt;[[Blank]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:66%; top:0;&amp;quot;&amp;gt;[[Reference]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:66%; top:1.6em;&amp;quot;&amp;gt;[[Blank]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;position:absolute; left:66%; top:3.2em;&amp;quot;&amp;gt;[[Projects]]&amp;lt;/strong&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;[[reboil.com wiki]]&#039;&#039;&#039; is a public [[Mediawiki]] instance for [[User:Baltakatei]] meant for publishing documentation and commentary on various projects and topics.&lt;br /&gt;
&lt;br /&gt;
==Projects==&lt;br /&gt;
* [[BK-2020-03]]: {{bk}}&#039;s Executable Development ([https://gitlab.com/baltakatei/baltakatei-exdev gitlab])&lt;br /&gt;
* [[BK-2020-04]]: {{bk}}&#039;s Engineering Drawing Templates ([https://gitlab.com/baltakatei/BK-2020-04/ gitlab])&lt;br /&gt;
* [[BK-2020-08-1]]: {{bk}}&#039;s [[Ikiwiki]] blog. ([https://reboil.com/ikiwiki/blog/ link])&lt;br /&gt;
* [[BK-2020-08-3]]: {{bk}}&#039;s [[TeXmacs]] articles ([https://reboil.com/texmacs/ link]).&lt;br /&gt;
* [[BK-2020-08-6]]: Reboil.com static resource repository. ([https://reboil.com/res/ link])&lt;br /&gt;
* [[BK-2020-09]]: {{bk}}&#039;s [[Wikipedia]] edits ([https://gitlab.com/baltakatei/BK-2020-09 gitlab])&lt;br /&gt;
* [[BK-2021-07]]: {{bk}}&#039;s transcription of [[DeVoe&#039;s Thermodynamics and Chemistry]] textbook ([https://reboil.com/thermobook.pdf PDF]).&lt;br /&gt;
** [[BK-2021-07-1]]: The main text.&lt;br /&gt;
** [[BK-2021-07-2]]: Solutions manual.&lt;br /&gt;
* [[BK-2021-09]]: {{bk}}&#039;s [[Notable Public Keys]] book. ([https://reboil.com/npk.pdf PDF])&lt;br /&gt;
* [[BK-2023-03]]: Member list of the [[Authors Guild]]. ([https://reboil.com/gitweb/BK-2023-03.git gitweb])&lt;br /&gt;
* [[BK-2023-04]]: Pekora BGM animation sync.&lt;br /&gt;
* [[BK-2023-05]]: Learn the C programming language&lt;br /&gt;
* [[EVA-2020-02]]: Ninfacyzga-1 environment sensor ([https://gitlab.com/baltakatei/ninfacyzga-01 gitlab])&lt;br /&gt;
&lt;br /&gt;
==Journals==&lt;br /&gt;
* [[2026-09|September 2026]]&lt;br /&gt;
* [[2026-08|August 2026]]&lt;br /&gt;
* [[2026-07|July 2026]]&lt;br /&gt;
* [[Summary of months of 2026]]&lt;br /&gt;
* [[Summary of months of 2025]]&lt;br /&gt;
* [[Summary of months of 2024]]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Special:EditPage]]: Make or edit a page.&lt;br /&gt;
* [[Main Page boilerplate]]&lt;br /&gt;
* [[User:Baltakatei/Sandbox]]&lt;br /&gt;
* [[Useful CLI commands]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Anathem&amp;diff=198238</id>
		<title>Anathem</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Anathem&amp;diff=198238"/>
		<updated>2026-09-24T01:10:51Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anathem&#039;&#039;&#039; is a book by [[Neal Stephenson]] about weaponized and applied platonic epistemology.&lt;br /&gt;
&lt;br /&gt;
Page numbers are based on the First Edition hardcover ([[ISBN-13]]: &amp;lt;code&amp;gt;978-0-06-147409-5&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Note, if you want to puzzle out the story without spoilers, do not read this page. This page is intended to be a memory aide for people wishing to review people, places, and things, in detail without needing to read the text again.    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Publication date: [[2008-09-09]]&lt;br /&gt;
* OCLC: [https://www.worldcat.org/oclc/191930336 191930336]&lt;br /&gt;
&lt;br /&gt;
==Plot details==&lt;br /&gt;
With the exception of in-text quotes of &#039;&#039;The Dictionary&#039;&#039;, in-text quoting such as from the glossary is avoided where possible.&lt;br /&gt;
&lt;br /&gt;
===People===&lt;br /&gt;
; Ala, Suur&lt;br /&gt;
: An Edharian Decenarian Suur in cohort of Erasmus. Girlfriend of Erasmus. Later works at Convox to design the Anti-Swarm.&lt;br /&gt;
&lt;br /&gt;
; Alwash&lt;br /&gt;
: A big man who gives Erasmus clothes while traveling on an icebreaker(?) ship to Mahsht, in exchange for Erasmus attending Magister Sark&#039;s sermon.&lt;br /&gt;
&lt;br /&gt;
; Arsibalt, Fraa&lt;br /&gt;
: Fellow decenarian friend of Erasmas.&lt;br /&gt;
&lt;br /&gt;
; Asquin, Suur&lt;br /&gt;
: A Suur Erasmus meets during Messel. Acts as a social facilitator&lt;br /&gt;
&lt;br /&gt;
; Atamant&lt;br /&gt;
: A fictional character made up by &#039;&#039;&#039;Zhʼvaern&#039;&#039;&#039; to lure the &#039;&#039;&#039;Plurality of Worlds Messel&#039;&#039;&#039; into leaking information about the &#039;&#039;&#039;Incanters&#039;&#039;&#039; and &#039;&#039;&#039;Rhetors&#039;&#039;&#039;. Loosely based on the Laterran &#039;&#039;&#039;[[Edmund Husserl]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Barb&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Fraa Tavener&#039;&#039;&#039;). Neurodivergent son of artisan Quin. Tutored by Erasmus.&lt;br /&gt;
&lt;br /&gt;
; bottle shaker&lt;br /&gt;
: ([[Anathem/Full text (2008)/Part 1: Provener#bottle-shaker|p1]]) A charlatan who projects a false aura of being extraordinary by associating themselves with a material or people with unusual qualities.&lt;br /&gt;
&lt;br /&gt;
; Brajj&lt;br /&gt;
: An intelligent man who Erasmus travels with across the north pole. Saves themselves at the cost of letting Dag, Laro, and Erasmus fall into a crevasse after Dag foolishly walks across snow Brajj had not probed. Later is roped into helping save Laro by Erasmus after Erasmus saves themselves with their bolt, sphere, and cord.&lt;br /&gt;
&lt;br /&gt;
; Bucker, Saunt&lt;br /&gt;
: (First mentioned on page 708). Arbran inventor or namesake of the &#039;&#039;Saunt Bucker&#039;s Basket&#039;&#039; (a.k.a. &amp;quot;Faraday cage&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
; Conderline, Saunt&lt;br /&gt;
: (See pg. 637) An avout who theorized that cosmi with fundamental constants of nature compatible with the development of intelligent life were as an oil sheen floating above a deep ocean of uninhabitable cosmi.&lt;br /&gt;
&lt;br /&gt;
; Edhar, Saunt &lt;br /&gt;
: A Fraa who helped develop Complex Protism. Their name was later used to name the concent at which Erasmus is a Fraa.&lt;br /&gt;
&lt;br /&gt;
; Emman Beldo&lt;br /&gt;
: Assistant to Madame Secretary Ignetha Foral.&lt;br /&gt;
&lt;br /&gt;
; Cord&lt;br /&gt;
: Sib of Erasmus. Sline praxic who specializes in mechanical engineering.&lt;br /&gt;
&lt;br /&gt;
; Dag&lt;br /&gt;
: A Geeth (?) who crosses the north pole with Erasmus. Dies from falling down a crevasse due to walking over unprobed snow. Brother of &#039;&#039;&#039;Laro&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Erasmus, Fraa&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Raz&#039;&#039;&#039;, &#039;&#039;&#039;Vit&#039;&#039;&#039;) An Edharian Decenarian Fraa. Student of Orolo. Born of sline background.&lt;br /&gt;
&lt;br /&gt;
; Eshwar, Prag&lt;br /&gt;
: The Prag of the Pedestal. Receives horrifying premonitions of the consequences of not seeking a peaceful resolution to the Advent of Arbre when Cell 317 breaches the Daban Urnud&#039;s security and destroys the World Burner. Their counterpart is &#039;&#039;&#039;Gan Odru&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Esma, Suur&lt;br /&gt;
: Valer.&lt;br /&gt;
&lt;br /&gt;
; Estemard&lt;br /&gt;
: A decenarian of the order of Saunt Edhar who taught Fraa Orolo. Tiled the floor of the concent&#039;s laundry area. Later left the concent to become a diolator at Bly&#039;s Butte with the Samblites. Housed Orolo after Orolo was thrown back.&lt;br /&gt;
&lt;br /&gt;
; Flec, Artisan&lt;br /&gt;
: (See pg. 3) Interviewed by &#039;&#039;&#039;Orolo&#039;&#039;&#039; in preparation for &#039;&#039;&#039;Apert&#039;&#039;&#039;. A coworker of &#039;&#039;&#039;Artisan Quin&#039;&#039;&#039;. Devotee of the &#039;&#039;&#039;Warden of Heaven&#039;&#039;&#039;. Tried to take a speely of Provener at Saunt Edhar during Apert.&lt;br /&gt;
&lt;br /&gt;
; Fraa&lt;br /&gt;
: A male avout. ({{bk}}: A title roughly equivalent to &amp;quot;scientist&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
; Fthosians&lt;br /&gt;
: People from Fthos.&lt;br /&gt;
&lt;br /&gt;
; Ganelial Crade&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Gnel&#039;&#039;&#039;). Brother of &#039;&#039;&#039;Yulassetar Crade&#039;&#039;&#039;. An intelligent Samblite who is one of the first extramuros diolator (?) to offer transport services to the freshly Evoked avout of Saunt Edhar following the laser illumination of the concent&#039;s thousander tower.&lt;br /&gt;
&lt;br /&gt;
; Gratho, Fraa&lt;br /&gt;
: Valer.&lt;br /&gt;
&lt;br /&gt;
; Ignetha Foral.&lt;br /&gt;
: Called the Plurality of Worlds messal in Part 10. Has ties to The Lineage.&lt;br /&gt;
&lt;br /&gt;
; Jad, Fraa&lt;br /&gt;
: An Edharian Millennarian Fraa. Is Incanter.&lt;br /&gt;
&lt;br /&gt;
; Jesry, Fraa&lt;br /&gt;
: An Edharian Decenarian Fraa in cohort of Erasmus. Born of Berger background.&lt;br /&gt;
&lt;br /&gt;
; Jules Verne Durand&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Zhʼvaern&#039;&#039;&#039;) A descendant of immigrants from &#039;&#039;&#039;Laterre&#039;&#039;&#039;. A linguist assigned to learn Orth by the &#039;&#039;&#039;Pedestal&#039;&#039;&#039;. Husband to &#039;&#039;&#039;Lise&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Karval, Suur&lt;br /&gt;
: A bald (?) avout whose doin was Suur Moyra (?). &lt;br /&gt;
&lt;br /&gt;
; Laro&lt;br /&gt;
: An uneducated Geeth sline. Brother of &#039;&#039;&#039;Dag&#039;&#039;&#039;. Injured by Dag&#039;s fall into a crevasse but is saved by Erasmus. Blames Erasmus for failing to use avout sorcery to save Dag. In retribution upon arriving safely at Mahsht, summons a Geeth mob to lynch Erasmus.&lt;br /&gt;
&lt;br /&gt;
; Laterrans&lt;br /&gt;
: People from Laterre. See &#039;&#039;&#039;Antarct&#039;&#039;&#039; or &#039;&#039;&#039;Earth&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Lio, Fraa&lt;br /&gt;
: An Edharian Decenarian Fraa in cohort of Erasmus.&lt;br /&gt;
&lt;br /&gt;
; Lise&lt;br /&gt;
: Husband to Jules Verne Durand.&lt;br /&gt;
&lt;br /&gt;
; Malter&lt;br /&gt;
: A Kedev who meets Erasmus after Erasmus attends a Kelx service led by Magister Sark. Says it is an honor to meet an avout.&lt;br /&gt;
&lt;br /&gt;
; Matarrhite&lt;br /&gt;
: An order of centenarian avout who believe in God and wear veiled outfits.&lt;br /&gt;
&lt;br /&gt;
; Mentaxenes, Fraa&lt;br /&gt;
: An Edharian Decenarian Fraa who often opened the door to the Chansel (?) for Erasmus and other clock winders.&lt;br /&gt;
&lt;br /&gt;
; Millenarians&lt;br /&gt;
: (See pg. 5; a.k.a. &#039;&#039;&#039;thousanders&#039;&#039;&#039;). Avout of &#039;&#039;&#039;Maths&#039;&#039;&#039; that celebrate &#039;&#039;&#039;Apert&#039;&#039;&#039; every one thousand years.&lt;br /&gt;
&lt;br /&gt;
; Moyra, Suur&lt;br /&gt;
: A Lorite who describes herself as a &amp;quot;Plurality of Worlds&amp;quot; Lorite. Described by Erasmus as a &amp;quot;closet Halikarnian&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; mystagogue&lt;br /&gt;
: (p1) Archaically, a natural philosopher. Currently, a pejorative term for purveyor of pseudoscience.&lt;br /&gt;
&lt;br /&gt;
; Odru, Gan&lt;br /&gt;
: The Gan of the Fulcrum. Meets with Erasmus and Jad (pg. 826) and recounts how one of his predecessor Urnudans &lt;br /&gt;
&lt;br /&gt;
; Orhan&lt;br /&gt;
: Servitor and minder of Zhʼvaern.&lt;br /&gt;
&lt;br /&gt;
; Orolo, Fraa&lt;br /&gt;
: (See pg. 3) An Edharian Decenarian Fraa of cosmology. Pa of Erasmus.&lt;br /&gt;
&lt;br /&gt;
; Osa, Fraa&lt;br /&gt;
: First Among Equals of the Valers.&lt;br /&gt;
&lt;br /&gt;
; Lodoghir, Fraa&lt;br /&gt;
: A Procian (?) Centenarian Fraa. Becomes Doin of Erasmus at Convox. Is Rhetor.&lt;br /&gt;
&lt;br /&gt;
; Paphlagon, Fraa&lt;br /&gt;
: An Edharian centenarian Fraa. Cosmographer specializing in polycosmic theory.&lt;br /&gt;
&lt;br /&gt;
; Quin, Artisan&lt;br /&gt;
: Co-worker of &#039;&#039;&#039;Artisan Flec&#039;&#039;&#039; and father of &#039;&#039;&#039;Fraa Tavener&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Sark, Magister&lt;br /&gt;
: A Kelx magister whom Erasmus recounts Dag&#039;s death while crossing the north pole.&lt;br /&gt;
&lt;br /&gt;
; Statho, Fraa&lt;br /&gt;
: Reads the Voco orders for Erasmus.&lt;br /&gt;
&lt;br /&gt;
; Tavener, Fraa&lt;br /&gt;
: See &#039;&#039;&#039;Barb&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Trestanas, Suur&lt;br /&gt;
: Newly appointed hierarch who assigned Erasmus chapter 5 of The Book of Penance after Erasmus talked back to her when she threatened to anathematize Lio after his brawl with sæculars on 10th night of Apert.&lt;br /&gt;
&lt;br /&gt;
; Troäns&lt;br /&gt;
: People of &#039;&#039;&#039;Tro&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Tris, Suur&lt;br /&gt;
: A Suur Erasmus meets at Tredegarh and is present during the Messels.&lt;br /&gt;
&lt;br /&gt;
; Tulia, Suur&lt;br /&gt;
: A female avout who Erasmus fancied at Saunt Edhar. Due to a deal brokered by Orlo, Tulia gave up her seat in The Order of the New Circle so Erasmus could work under Orlo in the Edharian Order. She later becomes a remote operator for Erasmus and others during Advent.&lt;br /&gt;
&lt;br /&gt;
; Varax, Inquisitor&lt;br /&gt;
: Inquisitor who visited Saunt Edhar during Apert.&lt;br /&gt;
&lt;br /&gt;
; Vay, Suur&lt;br /&gt;
: Valer.&lt;br /&gt;
&lt;br /&gt;
; Vit&lt;br /&gt;
: See &#039;&#039;&#039;Erasmus, Fraa&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Warden of Heaven&lt;br /&gt;
: Charlatan bottleshaker identified by Fraa Orolo via the survey questions he asked during Apert to Artisan Flec.&lt;br /&gt;
&lt;br /&gt;
; Yulassetar Crade&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Yul&#039;&#039;&#039;). Brother of &#039;&#039;&#039;Ganelial Crade&#039;&#039;&#039;. Samblite heretic and experienced outdoorsman and tourist guide. Joines Erasmus and company, seeming to already have met Cord. Their fetch is destroyed in the events of Orithena. Later marries Cord.&lt;br /&gt;
&lt;br /&gt;
; Zhʼvaern &lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Jules Verne Durand&#039;&#039;&#039;). A madderite who is actually an Orth-speaking Geometer from Antarct.&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; Antarct&lt;br /&gt;
: See &#039;&#039;&#039;Laterre&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Daban Urnud&lt;br /&gt;
: (pg. 712). The Geometer&#039;s intercosmic spacecraft. Consists of an icosahedron shell around a stack of habitat spheres rotating around a central axis. Inhabited by Urnudans of Urnud (a.k.a. &#039;&#039;&#039;Pangae&#039;&#039;&#039; (?)), Troäns (?) of Tro (a.k.a. &#039;&#039;&#039;Diasp&#039;&#039;&#039;), Laterrans of Laterre (a.k.a. &#039;&#039;&#039;Earth&#039;&#039;&#039;, &#039;&#039;&#039;Antarct&#039;&#039;&#039;), and Fthosians of Fthos (a.k.a. &#039;&#039;&#039;Quator&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
; Diasp&lt;br /&gt;
: (See pg. 638) A planet whose most prominent geographical feature is that most of its surface land is comprised of many small landmasses separated by ocean.&lt;br /&gt;
&lt;br /&gt;
; Earth&lt;br /&gt;
: See &#039;&#039;&#039;Antarct&#039;&#039;&#039;, &#039;&#039;&#039;Laterre&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Edhar, Consent of Saunt&lt;br /&gt;
: The math of Erasmus. One of the three Inviolates.&lt;br /&gt;
&lt;br /&gt;
; Elkhazg&lt;br /&gt;
: A former math founded on the tradition of copying books and textile patterns from goods ferried across a river. Owned and run by businesses associated with the Lineage.&lt;br /&gt;
&lt;br /&gt;
; Fthos&lt;br /&gt;
: (See pg. 713; a.k.a. &#039;&#039;&#039;Quator&#039;&#039;&#039; (pg. 638)). A planet whose most prominent feature is having four large continents. Victim of the Third Advent.&lt;br /&gt;
&lt;br /&gt;
; Great Orrery, The&lt;br /&gt;
: A place in Saunt Edhar.&lt;br /&gt;
&lt;br /&gt;
; Kolya&lt;br /&gt;
: A place related to Erasmus&#039;s journey across the north pole.&lt;br /&gt;
&lt;br /&gt;
; Laterre&lt;br /&gt;
: (See pg. 709; a.k.a. &#039;&#039;&#039;Antarct&#039;&#039;&#039; (pg. 638), &#039;&#039;&#039;Earth&#039;&#039;&#039; (pg. 829)) A planet whose most prominent geographical feature is a continent at its south pole. The victim of the Second Advent.&lt;br /&gt;
&lt;br /&gt;
; Mahsht&lt;br /&gt;
: A northern latitude icebreaker port town roughly four times the size of the town surrounding Saunt Edhar.&lt;br /&gt;
&lt;br /&gt;
; Norslof&lt;br /&gt;
: Where Erasmus and company purchased snow tires before traveling towards the north pole. (pg. 430)&lt;br /&gt;
&lt;br /&gt;
; Orithena&lt;br /&gt;
: Analogous to Earth&#039;s &amp;quot;Athens&amp;quot; (where many ancient pre-Roman philosophers lived) or &amp;quot;Pompeii&amp;quot;. The destruction of Orithena by a volcanic eruption in -2621 marked the beginning of the &#039;&#039;&#039;Peregrin&#039;&#039;&#039; epoch which ended with the &#039;&#039;&#039;Golden Age of Ethras&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Pangee&lt;br /&gt;
: See &#039;&#039;&#039;Urnud&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Quator&lt;br /&gt;
: See &#039;&#039;&#039;Fthos&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Rambalf, Consent of Saunt&lt;br /&gt;
: One of the three Inviolates.&lt;br /&gt;
&lt;br /&gt;
; Samble&lt;br /&gt;
: A small diolator town on Bly&#039;s Butte. Home of the Samblite ark. Hometown of &#039;&#039;&#039;Ganelial Crade&#039;&#039;&#039; and &#039;&#039;&#039;Yulassetar Crade&#039;&#039;&#039;. Received Estemard following their departure from Saunt Edhar.&lt;br /&gt;
&lt;br /&gt;
; Samblite&lt;br /&gt;
: A person from Samble.&lt;br /&gt;
&lt;br /&gt;
; Shuf&#039;s Dowment&lt;br /&gt;
: A place in Saunt Edhar.&lt;br /&gt;
&lt;br /&gt;
; Tredegarh, Consent of Saunt&lt;br /&gt;
: 2000 miles away from Consent of Saunt Edhar. One of the three Inviolates.&lt;br /&gt;
&lt;br /&gt;
; Tro&lt;br /&gt;
: The victim of the First Advent. (a.k.a. &#039;&#039;&#039;Diasp&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
; Urnud&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Pangee&#039;&#039;&#039; (pg. 638)) The origin planet of the &#039;&#039;&#039;Daban Urnud&#039;&#039;&#039;. A planet whose most prominent feature is one large mega continent surrounded by ocean.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; Adrakhonic Theorem&lt;br /&gt;
: Analaogous to Earth&#039;s &amp;quot;Pythagorean Theorem&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; Advent&lt;br /&gt;
: First contact, conflict, and eventual cultural assimilation of a planet with that of the inhabitants of the Daban Urnud.&lt;br /&gt;
&lt;br /&gt;
; amanuensis&lt;br /&gt;
: A &amp;quot;consciousness-bearing system&amp;quot; whose observations &amp;quot;has effects in other [cosmi downwick]&amp;quot;. (see explanation by Fraa Jad on pg. 827).&lt;br /&gt;
&lt;br /&gt;
; Apert&lt;br /&gt;
: (See pg. 3) A 10-day long period of time in which the gates of a &#039;&#039;&#039;Math&#039;&#039;&#039; are opened in order to allow limited co-mingling of people and ideas.&lt;br /&gt;
&lt;br /&gt;
; Arbre&lt;br /&gt;
: The planet in which the events of the book Anathem take place.&lt;br /&gt;
&lt;br /&gt;
; Asamocra&lt;br /&gt;
: Acronym for “Asynchronous, symmetrically anonymized, moderated open-cry repute auction”. According to &#039;&#039;&#039;Sammann&#039;&#039;&#039;, the last true asamocra occurred 3600 years prior. (pg. 430).&lt;br /&gt;
&lt;br /&gt;
; Big Nugget, The&lt;br /&gt;
: A large asteroid that was discovered to be an existential threat to Arbre. Moved the Powers that Be to call a Convox so theors could plan countermeasures. Ultimately, the asteroid did not impact Arbre.&lt;br /&gt;
&lt;br /&gt;
; Cartasian Discipline&lt;br /&gt;
: (See pg. 5). A set of rules restricting personal freedom followed by &#039;&#039;&#039;avout&#039;&#039;&#039;. Named after &#039;&#039;&#039;Saunt Cartas&#039;&#039;&#039;, an ancient avout who helped start the &#039;&#039;&#039;Old Mathic Age&#039;&#039;&#039; during the -1500s.&lt;br /&gt;
&lt;br /&gt;
; causal domain&lt;br /&gt;
: From Part 11, “Advent”:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
A collection of things mutually linked in a web of cause-and-effect relationships. —&#039;&#039;The Dictionary, 4th edition, A.R. 3000&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Century Gate&lt;br /&gt;
: See &#039;&#039;&#039;Gate, Century&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; Clesthyra&#039;s Eye&lt;br /&gt;
: A fisheye lens telescope installed at the Consent of Saunt Edhar as a result of the events of The Big Nugget.&lt;br /&gt;
&lt;br /&gt;
; Cold Black Mirror&lt;br /&gt;
: A refrigerated surface designed to reflect all radio and light waves.&lt;br /&gt;
&lt;br /&gt;
; Collect, to&lt;br /&gt;
: (See pg. 4) The act of a &#039;&#039;&#039;Math&#039;&#039;&#039; adopting unwanted orphans from &#039;&#039;&#039;extramuros&#039;&#039;&#039; in order to maintain a stable population, especially since &#039;&#039;&#039;avout&#039;&#039;&#039; are artificially celibate due to their diet.&lt;br /&gt;
&lt;br /&gt;
; Convox&lt;br /&gt;
: A gathering of theors called to deal with some threat beyond the capabilities of The Powers That Be.&lt;br /&gt;
&lt;br /&gt;
; Day Gate&lt;br /&gt;
: See &#039;&#039;&#039;Gate, Day&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; Decade Gate&lt;br /&gt;
: See &#039;&#039;&#039;Gate, Decade&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; dinosaur&lt;br /&gt;
: See &#039;&#039;&#039;parking ramp dinosaur&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; doyn&lt;br /&gt;
: A senior &#039;&#039;&#039;avout&#039;&#039;&#039; who is served at a &#039;&#039;&#039;messal&#039;&#039;&#039; by a typically more junior &#039;&#039;&#039;servitor&#039;&#039;&#039; in a sort of mentor relationship.&lt;br /&gt;
&lt;br /&gt;
; dragon&lt;br /&gt;
: May refer to the  (p4) &#039;&#039;&#039;[[Anathem/Full text (2008)/Part 4: Anathem#dragon|pink nerve-gas-farting dragon]]&#039;&#039;&#039; or the (p7) &#039;&#039;&#039;[[Anathem/Full text (2008)/Part 7: Feral#dragon|parking ramp dinosaur]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Farspark&lt;br /&gt;
: A moving picture praxis and predecessor to a &#039;&#039;&#039;speely&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Fulcrum, The&lt;br /&gt;
: The more mathic faction of the &#039;&#039;&#039;Daban Urnud&#039;&#039;&#039;; led by the &#039;&#039;&#039;Gan&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Gan&lt;br /&gt;
: A rank of Urnudan whose closest word in Orth is &amp;quot;Admiral&amp;quot;. Gans specialize in strategy while their counterparts, the &#039;&#039;&#039;Prags&#039;&#039;&#039; specialize in tactics. Introduced on page 829.&lt;br /&gt;
&lt;br /&gt;
; Gate, Century&lt;br /&gt;
: The main entrance and exit of a centenarian math. Celebrates Apert once every century.&lt;br /&gt;
&lt;br /&gt;
; Gate, Day&lt;br /&gt;
: The main entrance and exit of a day math. Celebrates Apert once every day.&lt;br /&gt;
&lt;br /&gt;
; Gate, Decade&lt;br /&gt;
: The main entrance and exit of a decenarian math. Celebrates Apert once every decade.&lt;br /&gt;
&lt;br /&gt;
; Gate, Year&lt;br /&gt;
: The main entrance and exit of a unarian math. Celebrates Apert once every year.&lt;br /&gt;
&lt;br /&gt;
; Geometrodynamics&lt;br /&gt;
: (pg. 711). A model of gravity that takes into account how mass-energy bends space-time. (a.k.a. &amp;quot;Special Relativity&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
; Icosahedron, The&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Hedron&#039;&#039;&#039;). An alien object found in a polar orbit by sæculars who secretly leaked its existence to &#039;&#039;&#039;Orolo&#039;&#039;&#039; via &#039;&#039;&#039;Sammann&#039;&#039;&#039;. Later found to be called the &#039;&#039;&#039;Daban Urnud&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Inbrase&lt;br /&gt;
: An aut during which a peregrin avout is welcomed back into a mathic order after a journey through the &#039;&#039;&#039;sæculum&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; The Inquisition&lt;br /&gt;
: A political system operating for the benefit of The Powers that Be whose mission is to ensure theors obey the Mathic Discipline under threat of expulsion. Made up of &#039;&#039;&#039;inquisitors&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; inquisitors&lt;br /&gt;
: A class of people reporting to The Powers that Be that comprise The Inquisition.&lt;br /&gt;
&lt;br /&gt;
; Inviolates, The Three&lt;br /&gt;
: One of the three millenarian maths that were not breached during The Third Sack.&lt;br /&gt;
&lt;br /&gt;
; Kelx&lt;br /&gt;
: An ark whose doctrine centers around the the triangular arrangement of relationships between a mythic Magistrate, a Condemned Man, and Innocent. Followers of a Kelx are called Kedevs. Its local ministers are called Magistrates.&lt;br /&gt;
&lt;br /&gt;
; Laboratorium&lt;br /&gt;
: During a &#039;&#039;&#039;Convox&#039;&#039;&#039;, a period of time during which &#039;&#039;&#039;avout&#039;&#039;&#039; are assigned specific, usually &#039;&#039;&#039;praxic&#039;&#039;&#039; tasks.&lt;br /&gt;
&lt;br /&gt;
; Lucub&lt;br /&gt;
: During a &#039;&#039;&#039;Convox&#039;&#039;&#039;, a period of independent study time during which an avout is not assigned any particular work. Compare with &#039;&#039;&#039;Laboratorium&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; messal&lt;br /&gt;
: A meal at which &#039;&#039;&#039;doyns&#039;&#039;&#039; and their &#039;&#039;&#039;servitors&#039;&#039;&#039; share information.&lt;br /&gt;
&lt;br /&gt;
; messallan&lt;br /&gt;
: A room in which a &#039;&#039;&#039;messel&#039;&#039;&#039; is conducted.&lt;br /&gt;
&lt;br /&gt;
; Newmatter &lt;br /&gt;
: Matter typically engineered to contain atomic elements with electrochemical properties not found in naturally-occuring matter. Detectable via emission spectroscopy.&lt;br /&gt;
&lt;br /&gt;
; nucleosynthesis &lt;br /&gt;
: A technique invented prior to the First Sack that permitted the creation of &#039;&#039;&#039;Newmatter&#039;&#039;&#039;: novel atomic elements with engineered electrochemical properties that may be optimized for superior material qualities such as density, toughness, strength, etc. beyond what is ordinarily possible in naturally occuring matter.&lt;br /&gt;
&lt;br /&gt;
; parking ramp dinosaur&lt;br /&gt;
: (p7) The skeleton of a hundred-foot-long reptile found embedded within 6-year-old poured synthetic stone of a shopping center parking ramp near Saunt Muncoster.  The ramp structure progressively weakened the more of the bones construction workers exposed, as if the act of observing them summoned them into existence.  Thousander chanting later resulted in all direct evidence of the existence of the skeleton being apparently erased.  One of the controversial events that led to the Third Sack.&lt;br /&gt;
&lt;br /&gt;
; Pedestal, The&lt;br /&gt;
: The more sæcular faction of the &#039;&#039;&#039;Daban Urnud&#039;&#039;&#039;, led by the &#039;&#039;&#039;Praag&#039;&#039;&#039;. Supported mainly by those of &#039;&#039;&#039;Urnud&#039;&#039;&#039; and &#039;&#039;&#039;Tro&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; peregrin&lt;br /&gt;
:: From Anathem, Part 6 &amp;quot;Peregrin&amp;quot;:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
(1) In ancient usage, the epoch beginning with the destruction of the Temple of Orithena in -2621 and ending several decades later with the flourishing of the Golden Age of Ethras. (2) A theor who survived Orithena and wandered about the ancient world, sometimes alone and sometimes in the company of other such. (3) A Dialog supposedly dating to this epoch. Many were later written down and incorporated into the literature of the mathic world. (4) In modern usage, an avout who, under certain exceptional circumstances, leave the confines of the math and travels through the Sæcular world while trying to observe the spirit, if not the letter, of the Discipline. —THE DICTIONARY, &#039;&#039;4th Edition, A.R. 3000&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; photomneumonic tablet&lt;br /&gt;
: A praxis that captures coherent images of light using a syndev and capable of reproducing and manipulating these light patterns during later analysis. &lt;br /&gt;
&lt;br /&gt;
; pink nerve-gas-farting dragon&lt;br /&gt;
: (p4) An example of an extremely specific theoretical hazard written about by Saunt Evenedric to spark discussion about the importance of plausibility when filtering through a profusion of possible combinations.  Brought up by Orolo in [[Anathem/Full text (2008)/Part 4: Anathem#dragon|dialog]] with Erasmus regarding worrying.&lt;br /&gt;
&lt;br /&gt;
; præsidium&lt;br /&gt;
: A prominent tall structure of a math such as that of Saunt Edhar.&lt;br /&gt;
&lt;br /&gt;
; Provener&lt;br /&gt;
: (See pg. 6) A daily ritual involving the winding of the Clock and a repeating of The Liturgy (?) reinforcing historic propaganda.&lt;br /&gt;
&lt;br /&gt;
; praxis&lt;br /&gt;
: (See pg. 4) ({{bk}}:Analogous to Earth&#039;s &amp;quot;technology&amp;quot;). Application of knowledge to manipulate reality.&lt;br /&gt;
&lt;br /&gt;
; praxics&lt;br /&gt;
: A social class analogous to Earth&#039;s &amp;quot;engineers&amp;quot;. Devoted to application of theorics &lt;br /&gt;
&lt;br /&gt;
; The Powers that Be&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;The Sæcular Power&#039;&#039;&#039;, &#039;&#039;&#039;The Panjandrum&#039;&#039;&#039;) The world government of Arbre at any given point in history.&lt;br /&gt;
&lt;br /&gt;
; refectory&lt;br /&gt;
: A central eating place in some maths such as those of Saunt Edhar.&lt;br /&gt;
&lt;br /&gt;
; sack&lt;br /&gt;
: In the context of math vs. sæcular politics, the conquering of a math and murder of a significant number of its inhabitants, often for irrational fears of one or more mathic iconogrpahies. See &#039;&#039;&#039;First Sack&#039;&#039;&#039;, &#039;&#039;&#039;Second Sack&#039;&#039;&#039;, and &#039;&#039;&#039;Third Sack&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Sack, The First&lt;br /&gt;
: A sack of the mathic world caused by sæcular fears of potential misuse of nucleosynthesis of &#039;&#039;&#039;newmatter&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Sack, The Second&lt;br /&gt;
: A sack of the mathic world caused by sæcular fears of potential misuse of genetic &#039;&#039;&#039;sequence manipulation&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Sack, The Third&lt;br /&gt;
: A sack of the mathic world caused by sæcular fears of potential misuse of .&lt;br /&gt;
&lt;br /&gt;
; sæculum&lt;br /&gt;
: The domain, physical and political, outside of a &#039;&#039;&#039;Math&#039;&#039;&#039;. See &#039;&#039;&#039;extramuros&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; servitor&lt;br /&gt;
: A junior avout who serves a senior avout known as a &#039;&#039;&#039;doyn&#039;&#039;&#039; during a &#039;&#039;&#039;messel&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; speely&lt;br /&gt;
: (See pg. 4). A moving picture ({{bk}}: Basically &amp;quot;[[video]]&amp;quot;). According to &#039;&#039;&#039;Artisan Flec&#039;&#039;&#039;, an extramuros method for obtaining information about a subject is called &amp;quot;to speel in&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; speelycaptor&lt;br /&gt;
: (See pg. 6). A speely input device.&lt;br /&gt;
&lt;br /&gt;
; syndev&lt;br /&gt;
: An abbreviation of &amp;quot;syntactic device&amp;quot;. Analogous to Earth&#039;s &amp;quot;computer&amp;quot;. A praxic artifact capable of fast information processing. Not usable by theors following the Second Sack after which the Ita are created and assigned to maintain syntactic devices. Examples include the control systems of the Millennial Clocks.&lt;br /&gt;
&lt;br /&gt;
; theorics&lt;br /&gt;
: Analgous to Earth&#039;s &amp;quot;Science&amp;quot;. The creation of models of reality with actionable predictive power.&lt;br /&gt;
&lt;br /&gt;
; theors&lt;br /&gt;
: A social class analogous to Earth&#039;s &amp;quot;scientists&amp;quot;. Generally devoted to the discovery of more accurate theorics. Development of advanced praxis required to prove new theorical models, especially that commissioned by the military, led to the Terrible Events.&lt;br /&gt;
&lt;br /&gt;
; The Terrible Events&lt;br /&gt;
: A poorly documented worldwide catastrophe that resulted in the end of the Praxic Age and the immediate imprisonment of theors to Maths as part of the Reconstitution. Involved deployment of Everything Killers.&lt;br /&gt;
&lt;br /&gt;
; Year Gate&lt;br /&gt;
: See &#039;&#039;&#039;Gate, Year&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
====Part 1: Provener====&lt;br /&gt;
Pages 1 to 52.&lt;br /&gt;
&lt;br /&gt;
Orolo interviews an Artisan. Erasmus is emanuensis (?) until he must wind the clock with Lio, Arsibalt, and Jesry.&lt;br /&gt;
Orolo interviews another Artisan with Erasmus. Artisan Quin talks about speelycaptors.&lt;br /&gt;
&lt;br /&gt;
====Part 2: Apert====&lt;br /&gt;
Pages 53 to 152.&lt;br /&gt;
&lt;br /&gt;
The Concent of Saunt Edhar celebrates Apert. Erasmus explores extramuros with Jesry. Erasmus meets his biological sib Kord with Sammann, an Ita, at Kord&#039;s workshop. Erasmus and Jesry relax at Jesry&#039;s berger home. Lio and Arsibalt are set upon by rapscallions. Erasmus gives a tour to some slines, suvin children (?), and two travelers. &lt;br /&gt;
&lt;br /&gt;
Orolo encourages Erasmus to look for beauty. The Starhenge is closed, interfering with Orolo&#039;s observation with the M&amp;amp;M.&lt;br /&gt;
&lt;br /&gt;
The cast attend tenth night. Erasmus discovers the two travelers were Inquisitors. Barb joins the math. Lio gets revenge. Hierarch Suur Trestenas throws the book at Erasmus for talking back.&lt;br /&gt;
&lt;br /&gt;
====Part 3: Eliger====&lt;br /&gt;
Pages 153 to 182.&lt;br /&gt;
&lt;br /&gt;
Erasmus is imprisoned. Erasmus toils up to Chapter 5 of The Book. Paphlegon is evoked. During the Voco ceremony, Erasmus attempts to retrieve the photomneumonic tablet from the M &amp;amp; M telescope pointed north but finds the telescope empty; Erasmus instead inserts a photomneumonic tablet into Clesthyra&#039;s Eye in order to gather what information he can.&lt;br /&gt;
&lt;br /&gt;
Erasmus mentors Barb.&lt;br /&gt;
&lt;br /&gt;
Lio and Erasmus start a weed war. Hierarchs interview Erasmus about speelycaptors.&lt;br /&gt;
&lt;br /&gt;
====Part 4: Anathem====&lt;br /&gt;
Pages 183 to 232.&lt;br /&gt;
&lt;br /&gt;
Orolo is thrown back for making illicit astronomical observations. During the Anathem ceremony, Erasmus retrieves the photomnemonic tablet from Clesthyra&#039;s Eye.&lt;br /&gt;
&lt;br /&gt;
====Part 5: Voco====&lt;br /&gt;
Pages 233 to 308.&lt;br /&gt;
&lt;br /&gt;
Erasmus and company speculate on what Orolo was observing. Barb embarasses everyone for suggesting extraterrestrial visitors. Erasmus studies the tablet from Klesthora&#039;s Eye. Ala notices Erasmus&#039; clandestine visits to Shuf&#039;s Dowment. Ala confronts Erasmus and Jesry at Shuf&#039;s Dowment, spooking Erasmus and breaking Ala&#039;s heart. Erasmus brings Ala forbidden flowers; they coincidentally witness an alien spaceship via a camera obscura effect. Erasmus and Ala announce a liason. Ala is Evoked along with Jesry and the now absent Orolo. Erasmus explains the alien spaceship discovery, motivating the concent to study Praxic Age Exoatmospheric Weapon Systems. Erasmus, and friends are Evoked along with some centenarians and the millenarian Fraa Jad.&lt;br /&gt;
&lt;br /&gt;
====Part 6: Peregrin====&lt;br /&gt;
Pages 309 to 386.&lt;br /&gt;
&lt;br /&gt;
Erasmus and company meet up with Cord and Sammann extramuros. Erasmus and other avout make a detour to find Orolo at Bly&#039;s (?) Butte, parting ways with Tulia and others bound directly for Tredegarh. Arsibalt explains to Beller the how Sconic Discipline puts discussion about the existence of God out of bounds. Erasmus examines the M &amp;amp; M photomnemonic tablet data containing the image of the icosahedron. Fraa Jad reveals his supernatural age to Erasmus and Lio. Erasmus and company stop for food and sleep at a Bazian monastery. Arsibalt leads a sconic dialog with Ferman Bellar (?) about The Fly, The Bat, and The Worm.&lt;br /&gt;
&lt;br /&gt;
====Part 7: Feral====&lt;br /&gt;
Pages 387 to 506.&lt;br /&gt;
&lt;br /&gt;
Erasmus describes the Muncoster parking ramp dinosaur to Yul. (pg. 424).&lt;br /&gt;
Erasmus discovers Jesry accompanied the Warden of Heaven to space. (pg. 433).&lt;br /&gt;
Erasmus travels alone across the pole.&lt;br /&gt;
Erasmus and some strangers improvise transport after a military convoy disrupts their journey.&lt;br /&gt;
Erasmus saves a Geeth.&lt;br /&gt;
Erasmus meets Minister Sark. &lt;br /&gt;
Erasmus arrives at Mahsht.&lt;br /&gt;
A mob lynches Erasmus.&lt;br /&gt;
Valers save Erasmus and reunite him with his company.&lt;br /&gt;
&lt;br /&gt;
====Part 8: Orithena====&lt;br /&gt;
Pages 507 to 570.&lt;br /&gt;
&lt;br /&gt;
Erasmus arrives at the excavation site of the Temple of Orithena with Cord, Yul, Sammann, and Ganelial Crade. Erasmus enters the Lineage and meets Orolo. Erasmus visits the Teglon and Analemma. Orlo declines an invitation to Tredegarh. Erasmus invites the rest of his company inside. Orolo explains evanadritian deitonony (?). Orithena receives a visitor. The Sæcular Power is interrupted. Orlo secures some important givens.&lt;br /&gt;
&lt;br /&gt;
====Part 9: Inbrase====&lt;br /&gt;
Pages 571 to 620.&lt;br /&gt;
&lt;br /&gt;
The party parts ways. Erasmus arrives at Tredegarh. Erasmus cries in a shower. Erasmus bakes bread. Erasmus meets a smelling Suur. Erasmus talks to Arsibalt, Lio, and Jesry through a hermetic barrier. Tulia wakes Erasmus who is late for Inbrase. The Convox celebrates Inbrace for Erasmus who sings a surprising song. Erasmus faces Lodogir in a Plenary. Lodogir weaves a plausible tale about how Orolo invited the Geometers by messaging them an image of the Analemma so they would visit Orithena which has a prominent outdoor analemma. Lodogir becomes Erasmus&#039;s Doin.&lt;br /&gt;
&lt;br /&gt;
====Part 10: Messel====&lt;br /&gt;
Pages 621 to 722.&lt;br /&gt;
&lt;br /&gt;
Messel 1: Lodogir tries to steer the Messel into supporting Procian thought. Suur Moyra the Lorite is a closet Halikarnian. Jad describes narratives. Paphlegon translates. Zhʼvaern breaks a taboo.&lt;br /&gt;
&lt;br /&gt;
Messel 2: ?&lt;br /&gt;
&lt;br /&gt;
Erasmus describes ice inside a star to Emman Beldo (?). The Sæcular Power retaliates with a cloaked bird. The icosahedron is prototyped and analyzed by the avout. Erasmus estimates the inertial tensor.&lt;br /&gt;
Ala confesses to Erasmus that she made a terrible but necessary mistake. Ala shares that Orolo used the M&amp;amp;M&#039;s guide star laser to draw an Analemma in space for the Icosahedron. Erasmus suspects Rhetor machinations.&lt;br /&gt;
Jad warns Erasmus about the cloaked ones. Barb and Arsibalt report the Icosahedron is an archeological dig of new matter types and it&#039;s polycosmic drive is missing. Erasmus reports the Icosahedron sloshed. Erasmus shares Jad&#039;s warning to Arsibalt.&lt;br /&gt;
&lt;br /&gt;
Messel 3: Paphlegon describes the Hylean flow along the Wick. Erasmus eats Madderite food to impress some Suurs and win a bet with Arsibalt. Erasmus shares Orolo&#039;s observations. Paphlegon compares conscious to a spotlight on a surface of similar cross-talking cosmi. Zhʼvaern recounts the research of an introspectionist who changed a copper bowl. Jad and Lodogir nearly agree on crosstalk and feedback loops. Zhʼvaern claims Adamont changed his bowl. Ignetha Foral terminates the messel.&lt;br /&gt;
&lt;br /&gt;
Erasmus, Arsibalt, and other servitors hatch a plan.&lt;br /&gt;
&lt;br /&gt;
Messel 4:&lt;br /&gt;
&lt;br /&gt;
====Part 11: Advent====&lt;br /&gt;
Pages 723 to 834.&lt;br /&gt;
&lt;br /&gt;
Erasmus and Cell 317 arrive at Elk Hazg (?). Jad solves the Teglon. Sammann shares chronological analysis of Urnudans. Arsibalt demonstrates suit praxis. Cell 317 train on the Manyufiks.&lt;br /&gt;
&lt;br /&gt;
====Part 12: Requiem====&lt;br /&gt;
Pages 835 to 876.&lt;br /&gt;
&lt;br /&gt;
====Part 13: Reconstitution====&lt;br /&gt;
Pages 877 to 890.&lt;br /&gt;
&lt;br /&gt;
====Calca 1: Cutting the Cake====&lt;br /&gt;
Page 911 to 916.&lt;br /&gt;
&lt;br /&gt;
====Calca 2: Hemm (Configuration Space)====&lt;br /&gt;
Pages 917 to 926.&lt;br /&gt;
&lt;br /&gt;
====Calca 3: Complex Versus Simple Protism====&lt;br /&gt;
Pages 927 to 935.&lt;br /&gt;
&lt;br /&gt;
====Summary====&lt;br /&gt;
Erasmus is studying to become a theor in the Math of Saunt Edhar under Fraa Orolo, a theor in cosmology. Erasmus lives roughly three thousand years after human civilization on Arbre quickly shot up the tech tree to weapons of mass destruction and programmatic nucleosynthesis (i.e. alchemy) so fast that civilization collapsed. Science and its application has since been regulated by The Powers That Be (i.e. government) which restrict knowledge to within the Maths. The Maths are informationally isolated (insert &amp;quot;hermetically sealed&amp;quot; pun here) monastaries in which theors curate and safeguard history and technological blueprints.&lt;br /&gt;
&lt;br /&gt;
One day, Orolo is banished from the Math, presumably for illegal astronomy.&lt;br /&gt;
&lt;br /&gt;
Erasmus and his fellow students work to determine why Orolo was ejected from the Math.&lt;br /&gt;
&lt;br /&gt;
Their studies help them make full use of the observation of an spaceship performing an orbital plane change maneuver while in line of sight between Arbre and the Sun. The Powers that Be call various theors, including Erasmus&#039; girlfriend, to work outside the Math, presumably to never return. When the ship acknowledges the existence of the Maths by shining laser light on, among others, Saunt Edhar, The Powers that Be call Erasmus and many others to travel to a Convox located on the other side of Arbre to study the ship and decide what actions to take.&lt;br /&gt;
&lt;br /&gt;
Erasmus travels with others until he decides to search for where Fraa Orolo went, believing Orolo had special knowledge of the ship. After a nearby clue proves fruitless, Jad, a millenarian, convinces Erasmus to search for Orolo at a Math-like archeological dig named Ekba on the other side of the planet. After a dangerous journey across the north pole in order to illegally cross borders, Erasmus finds Orolo at Ekba.&lt;br /&gt;
&lt;br /&gt;
Orolo informs Erasmus that the details of his astronomical observations were not as significant as Orolo&#039;s conclusion that the ship was not of Arbre. Orolo tells Erasmus of a many-worlds theory of consciousness that he believes allows humans to think with limited amounts of nerve tissue by leveraging crosstalk between parallel worlds that are similar but not quite the same; Orolo hypothesizes that the millenarians developed a praxis (i.e. technology) that enabled them to send and receive information from other worlds. Erasmus is worried that Orolo is talking about Incanters, a mythical group of theors that could change the future around which talk is prohibited by the Inquisition; the Incanters are contrasted in earlier parts of the book with the Rhetors, who have the power to change the past. Orolo&#039;s dialogue with Erasmus on the many-worlds (i.e. &amp;quot;polycosmic&amp;quot;) topic is abruptly terminated when he is killed by the heat from a pyroclastic flow from an Ekba volcano that was triggered into activity by an orbital kinetic strike by the ship after a human-shaped alien escaped to land dead at the archeological site.&lt;br /&gt;
&lt;br /&gt;
Erasmus then attends Convox after being retrieved by The Powers that Be. Liquids in vials retrieved by Orolo from the dead alien during the chaos of the Ekba evacuation are analyzed and found to contain alien blood made of atoms with nuclei not natural to Arbre. Unlike artificial nuclei produced by ancient Arbre nucleosynthesis technology in order to achieve superior materials science ends (e.g. high tensile strength low density fabrics), the nuclei in an alien parachute had no extraordinarily useful properties. Erasmus is debriefed during a public interview and is then assigned as assistant to a prominent theor Doin named Fraa Lodogir who, in turn, is assigned to a &amp;quot;Many Worlds&amp;quot; messel (i.e. think tank workshop). Erasmus and some of his Edharian colleagues, including the mysterious millenarian Fraa Jad, discuss with representatives of other Maths the possibility that the aliens are from another cosmos.&lt;br /&gt;
&lt;br /&gt;
The history of polycosmic theory is explained at various sessions of the messel with analogy lubrication provided by a Lorite (a theor dedicated to preventing duplicated academic effort). Orolo&#039;s theory of polycosmic crosstalk, independently predicted by him but also independently predicted by many other Edharians throughout time, is fleshed out as a fundamental property of matter that is so ubiquitous that its nature was not properly identified when quantum superposition theory was refined. However, Erasmus&#039;s doin Fraa Lodogir, argues that predictions require confirmation through experiment; polycosmic crosstalk can&#039;t be detected because its results average out to noise. Fraa Paflagon, a centinarian Edharian who was called out of Edhar shortly before Orolo was anathemitized, argues that polycosmic theory couldn&#039;t be confirmed until the aliens &amp;quot;down wick&amp;quot; traveled up to visit Arbre. A Maderite, Fraa Zh&#039;vaern, reveals that a fraa in his mathic order discovered a polycosmic praxis that allowed him to erase a scratch on a bowl. The Messal is immediately shut down due to worries that The Powers that Be may infer that the Maderite was claiming the existence of Incanters and Rhetors.&lt;br /&gt;
&lt;br /&gt;
Erasmus and company, with some hints from Fraa Jad, successfully reveal that Fraa Zh&#039;vaern is an alien after Erasmus eats some of Zh&#039;vaern&#039;s food and discovers his body&#039;s digestive enzymes were unable to alter the food&#039;s chemistry normally after shitting it out. Despite informationally-isolating the Messelin room with a Saunt Bucker&#039;s basket (which Zh&#039;vaern announces is called on his world a &amp;quot;Faraday cage&amp;quot;) and preparing commandos to neutralize other alien spies, Zh&#039;vaern warns that The Pedestal, the alien faction in control of the ship, will retaliate with an orbital strike on the Convox location. Erasmus&#039;s military-minded colleague, Lio, announces the existence of an evacuation plan prepared by Erasmus&#039;s girlfriend, Ala, and helps evacuate the Convox attendees.&lt;br /&gt;
&lt;br /&gt;
After some brief training, Erasmus, Jesry, Lio, Arsibalt, Jad, Sammann, and various martial artist Fraas are sent into space on some of Arbre&#039;s last orbital launch vehicles before the remaining launch facilities are rodded out of existence by the ship. They form a commando mission to disable the World Burner, a fission bomb capable of sterilizing a planet, installed on the Dabun Urnud, the alien ship. Using distraction confetti to hide their initial position and a cold dark mirror to hide their trajectory, they approach the Dabun Urnud. On the way, Jad disables a communication relay that he claimed was interfering with his control of narrative. Erasmus reveals that Jad is basically an Incanter who can communicate with many versions of himself across different branches of history.&lt;br /&gt;
&lt;br /&gt;
Erasmus and company board the ship surreptitiously in two groups. One group is composed of the martial artist Fraas (members of the order of the ringing vale; &amp;quot;valers&amp;quot;) who go directly to disable the World Burner and threaten to destroy the ship. The other group is composed of Erasmus, Jad, and company whose mission is to establish contact with the friendly faction on board the ship (the faction that attempted to share information at Ekba).&lt;br /&gt;
&lt;br /&gt;
In one version of events, everyone died except for Erasmus and Jad, who don firefighter suits and infiltrate the command habitat. After Jad brute-forces a 4-digit PIN securing a door, a sentry detects them and Everything Killers secretly embedded in their guts by The Powers That Be activate, presumably killing everyone on the Dabun Urnud with neutron radiation.&lt;br /&gt;
&lt;br /&gt;
In another version of events, Jad fails to open the door and is apprehended by less trigger-happy sentries who instead take them to meet with a powerless strategist who describes to them the history of the Dabun Urnud&#039;s various conquests across the polycosm. The strategist told them that basically the Incanters, in a panic as they were being exterminated by The Powers That Be in ancient times, summoned the Dabun Urnud.&lt;br /&gt;
&lt;br /&gt;
In another version of events, Jad had died shortly after launch, the valers successfully disabled the World Burner before ultimately dying, and Erasmus with the others lost consciousness upon breathing the ship&#039;s oxygen mix and not being able to become acclimatized quickly enough. The Powers that Be threatened further action to the Dabun Urnud so the leaders of the Dabun Urnud agreed to a cease fire and peace talks (their leader in particular had nightmares of what could happen).&lt;br /&gt;
&lt;br /&gt;
The book concludes following this last version of events. Erasmus attends peace talks aboard the Dabun Urnud, reunites with his sister who helped him cross the arctic, and meets the Rhetor Fraa Lodoghir who indirectly tells him in secret that Jad cannot return without undoing the success of the peace talks. Erasmus marries his girlfriend, Ala, and they found a new Math, Saunt Orolo, in a world with fewer restrictions from The Powers that Be now that technology from the mathic world escaped during the evacuation of the Convox.&lt;br /&gt;
&lt;br /&gt;
==Errors==&lt;br /&gt;
* In Part 7, &#039;&#039;Feral&#039;&#039;, following his discovery that Jesry was accompanying the Warden of Heaven to space and a discussion with Kraid on how the Warden led a religion splintered off from that of the Samblites, Erasmus realizes Orolo departed Bly&#039;s Butte the morning after laser light had shown down upon the Three Inviolates; Erasmus imagines Orolo packing up his bolt, cord, and sphere despite the fact that Orolo possessing these items at this point in time is inconsistent with how he is described leaving the Concent of Saint Erasmus: with minimal clothing following the Anathem ceremony. (pg. 439)&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
He had departed for the north only a couple days before we had—the morning after the lasers had shone down upon the Three Inviolates. Why would that cause him to pack up &#039;&#039;&#039;his bolt, chord, and sphere,&#039;&#039;&#039; and hurry to Ecba, of all places?&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* In the &#039;&#039;Acknowledgements&#039;&#039; section, the URL &amp;lt;code&amp;gt;www.nealstephenson.com/anathemacknowledgements&amp;lt;/code&amp;gt; is nonfunctional as of [[2023-03-22]]. Instead, the URL should be: https://nealstephenson.com/acknowledgments.html ([https://web.archive.org/web/20100212112200/http://nealstephenson.com/anathem/acknow.htm Archive])&lt;br /&gt;
* In [[/Full text (2008)/Part 1: Provener#error_planning-vs-planing|Part 1: Provener]], a typographical error in which “planning” is used where “planing” (i.e. “to plane”, not “to plan”) is used. Likely a [[spellcheck]] mistake.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2008-09-09]]: &#039;&#039;[[Anathem]]&#039;&#039; is published.&lt;br /&gt;
* [[2008-09-12]]: [[Neal Stephenson]] gives a talk about &#039;&#039;[[Anathem]]&#039;&#039; for [[Talks at Google]].&amp;lt;ref name=&amp;quot;yt_20080920_google-anathem&amp;quot;&amp;gt;[[Neal Stephenson]].  ([[2008-09-12]]).  “[https://www.youtube.com/watch?v=lnq-2BJwatE Anathem]”.  &#039;&#039;[[youtube.com]]&#039;&#039;, [[Talks at Google]].  ID: &amp;lt;code&amp;gt;lnq-2BJwatE&amp;lt;/code&amp;gt;.  Accessed [[2023-03-25]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==Quotes==&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
* [[Neal Stephenson]]&lt;br /&gt;
* [[David Stutz]]&lt;br /&gt;
* [[IOLET :: Music from the World of Anathem]]&lt;br /&gt;
* [[Lament for the Third Sack]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
* [https://nealstephenson.com/acknowledgments.html Acknowledgements] - contains links (some dead but [[Internet Archive|archived]]) to material that would have been included in “footnotes in which [[Neal Stephenson|&amp;lt;nowiki&amp;gt;[Neal Stephenson]&amp;lt;/nowiki&amp;gt;]] would express &amp;lt;nowiki&amp;gt;[his]&amp;lt;/nowiki&amp;gt; indebtedness to the thinkers of Earth who originated the ideas under discussion”. Note, the [http://www.nealstephenson.com/anathemacknowledgements URL on page 937 of the 1st edition hardcover] is nonfunctional.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references group=fn /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Comments==&lt;br /&gt;
&amp;lt;references group=cmt /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Books, fiction]]&lt;br /&gt;
[[Category:Science fiction]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Lament_for_the_Third_Sack&amp;diff=198237</id>
		<title>Lament for the Third Sack</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Lament_for_the_Third_Sack&amp;diff=198237"/>
		<updated>2026-09-24T00:55:21Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; Lyrics to a fictional song in a constructed language called Orth from the Neal Stephenson novel &amp;#039;&amp;#039;Anathem&amp;#039;&amp;#039; (2020).     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats== * Author: Jeremy Bornstein * Source: [https://monastic.org/orth/lament.html monastic.org] ([https://web.archive.org/web/20080913045839/http://www.nealstephenson.com/anathem/acknow.htm archive])  ==Lyrics== {| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;mar...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Lyrics to a fictional song in a constructed language called [[Orth]] from the [[Neal Stephenson]] novel &#039;&#039;[[Anathem]]&#039;&#039; ([[2020]]).     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Author: [[Jeremy Bornstein]]&lt;br /&gt;
* Source: [https://monastic.org/orth/lament.html monastic.org] ([https://web.archive.org/web/20080913045839/http://www.nealstephenson.com/anathem/acknow.htm archive])&lt;br /&gt;
&lt;br /&gt;
==Lyrics==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Lament for the Third Sack lyrics&amp;lt;ref name=&amp;quot;monastic_2008_lament-third-sack&amp;quot;&amp;gt;[[Jeremy Bornstein]].  (c. [[2008]]).  “[https://monastic.org/orth/lament.html Notes on Orth, &#039;&#039;Lament for the Third Sack&#039;&#039;]”.  &#039;&#039;[[monastic.org]]&#039;&#039;.  Accessed [[2026-09-23]].  [https://web.archive.org/web/20081003115429/http://monastic.org/orth/lament.html Archived] from the original on [[2008-10-03]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! en !! meta !! orth&lt;br /&gt;
|-&lt;br /&gt;
| Gold was the light that shone in the towers of Ethras,&lt;br /&gt;
| gold-effective light-effective towers-genitive Ethras-genitive&lt;br /&gt;
| konoda bruemoda akhalskon Ethrasong.&lt;br /&gt;
|-&lt;br /&gt;
| Green was the mountain where Protas stood, alone with his thoughts,&lt;br /&gt;
| Green-effective mountain-effective standing-genitive Protas-genitive-anchor:effective, [Protas-effective-1-omitted] alone-effective-1 his-instrumental-1 thoughts-instrumental-1.&lt;br /&gt;
| Puoloda branto naktokong Protasongge, vadokhek uve bymaxepomez.&lt;br /&gt;
|-&lt;br /&gt;
| White were the clouds that cast shade on the nourishing plain.&lt;br /&gt;
| White-effective clouds-effective shade-genitive-anchor:effective, plain-effective-1 nourishing-effective-1&lt;br /&gt;
| unokkan buvo levanongge, yorkokhek dokhek.&lt;br /&gt;
|-&lt;br /&gt;
| Black is the sky this day.&lt;br /&gt;
| Black-effective sky-effective today-genitive&lt;br /&gt;
| Xankan brelankan naponskon&lt;br /&gt;
|-&lt;br /&gt;
| The plain flashes red.&lt;br /&gt;
| Plain-accusative red-effective flash-effective.&lt;br /&gt;
| Yorkib tinoda tike.&lt;br /&gt;
|-&lt;br /&gt;
| Red sparks as numerous as stars&lt;br /&gt;
| red-effective sparks-effective-ANCHOR numberequivalent-effective-1 stars-accusative-1&lt;br /&gt;
| tinoda toturodage kendusokhek b&#039;paib.&lt;br /&gt;
|-&lt;br /&gt;
| honed edges gleaming&lt;br /&gt;
| edge-accusative-anchor sharp-effective gleaming-effective-1&lt;br /&gt;
| lexibge litaxkan bitbruempamoda.&lt;br /&gt;
|-&lt;br /&gt;
| The color of hills that are clothed in murmuring flame,&lt;br /&gt;
| color-effective-1 hills-accusative-anchor clothed-effective murmuring-flame-instrumental&lt;br /&gt;
| atokhek antibge ore zhrowo urox.&lt;br /&gt;
|-&lt;br /&gt;
| The color of blood washing the threshold of the library.&lt;br /&gt;
| blood-genitive color-agentive library-genitive threshold-accusative clean-effective.&lt;br /&gt;
| tinskon atak luxhskon metonib leba.&lt;br /&gt;
|-&lt;br /&gt;
| Say the ravagers: this is the wrath of the over-God Of whom we are the instrument in this world of things.&lt;br /&gt;
| ravage-agent speech-effective / over-God-genitive-ANCHOR(genitive1)-&amp;gt; wrath-effective1-ANCHOR(effective)&amp;lt;- / third-person-singular-genitive2 instrument-effective2 world-genitive2 things-instrumental2&lt;br /&gt;
| menaose ja / venorelskonchamcham tayutokhekge / ivo rexpekhak btarbrzhong bukhiwo&lt;br /&gt;
|-&lt;br /&gt;
| Things that we are. Things that you are.&lt;br /&gt;
| thing-effective 1st-person-plural-effective. thing-effective 2nd-person-plural-effective.&lt;br /&gt;
| bukan eva. bukan osho.&lt;br /&gt;
|-&lt;br /&gt;
| Things that you have made with the work of clever hands&lt;br /&gt;
| things-effective you-agentive clever-genitive hands-instrumental.&lt;br /&gt;
| bukan osh velraskon kenokh.&lt;br /&gt;
|-&lt;br /&gt;
| Things that by right share a common doom.&lt;br /&gt;
| Things-effective-required shared-accusative(instrumental) doom-accusative(instrumental)&lt;br /&gt;
| bukanrara dilokh kenakhorokh&lt;br /&gt;
|-&lt;br /&gt;
| No Mynster, no crypt, no labyrinth can shelter us this day, but only the wastes that stretch beyond the ken of even the most abject slines.&lt;br /&gt;
| mynster-agentive, crypt-agentive, labyrinth-agentive, first-person-pluralaccusative today-instrumental shelter-effective-impossible. wastes-agentive-ANCHOR(agentive) shelter-effective / most+abject-genitive1 slines-genitive1 beyond+reach-effective1&lt;br /&gt;
| Meatep, nurapaket, turapaket, sima naponox liotavena. eature liota litovevleon shanleon nokhikenokhek&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Jeremy_Bornstein&amp;diff=198236</id>
		<title>Jeremy Bornstein</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Jeremy_Bornstein&amp;diff=198236"/>
		<updated>2026-09-24T00:47:48Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Jeremy Bornstein&amp;#039;&amp;#039;&amp;#039; is an acquaintance of Neal Stephenson and created a constructed language named Orth for Stephensonʼs 2020 book Anathem.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats==  ==History== * 2003: Listed in the acknowledgements of &amp;#039;&amp;#039;Diamond Age&amp;#039;&amp;#039; (2003). * 2008: Included in the acknowledgements webpage of &amp;#039;&amp;#039;Anathem&amp;#039;&amp;#039; (2008) for drawing up grammatical rules fo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Jeremy Bornstein&#039;&#039;&#039; is an acquaintance of [[Neal Stephenson]] and created a [[constructed language]] named [[Orth]] for Stephensonʼs [[2020]] book [[Anathem]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2003]]: Listed in the acknowledgements of &#039;&#039;[[Diamond Age]]&#039;&#039; ([[2003]]).&lt;br /&gt;
* [[2008]]: Included in the acknowledgements webpage of &#039;&#039;[[Anathem]]&#039;&#039; ([[2008]]) for drawing up grammatical rules for the [[constructed language]] of [[Orth]].&amp;lt;ref name=&amp;quot;anathem_20080913_ack&amp;quot;&amp;gt;[[Neal Stephenson]].  ([[2020]]).  “[https://nealstephenson.com/acknowledgments.html Acknowledgements]”.  &#039;&#039;[[nealstephenson.com]]&#039;&#039;.  Accessed [[2026-09-23]].  [https://web.archive.org/web/20080913045839/http://www.nealstephenson.com/anathem/acknow.htm Archived] from the original on [[2008-09-13]].  “[[Jeremy Bornstein]] has also taken the lead in drawing up grammatical rules and vocabulary for [[Orth]]. [[Steve Wiggins]] invented a cuneiform-style alphabet in which to write it, and [[David Stutz]] has used it in the [[IOLET :: Music from the World of Anathem|Anathem music project]]. All of these endeavors are explained in better detail on the linked pages.”.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
* [https://monastic.org/orth/ Notes on Orth]&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=IOLET_::_Music_from_the_World_of_Anathem&amp;diff=198235</id>
		<title>IOLET :: Music from the World of Anathem</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=IOLET_::_Music_from_the_World_of_Anathem&amp;diff=198235"/>
		<updated>2026-09-24T00:21:51Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;IOLET :: Music from the World of Anathem&#039;&#039;&#039; is an audio CD containing mathematically-themed chants created to accompany the speculative fiction book [[Anathem]] by [[Neal Stephenson]].    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Artist: [[David Stutz]]&lt;br /&gt;
* Year: [[2008]]&lt;br /&gt;
&lt;br /&gt;
==Tracks==&lt;br /&gt;
PDF links taken from [https://web.archive.org/web/20120319091332/http://synthesist.net/tunes/scores/iolet.xml here].&lt;br /&gt;
&lt;br /&gt;
===1: Approximating Pi===&lt;br /&gt;
&lt;br /&gt;
===2: Thousander Chant===&lt;br /&gt;
&lt;br /&gt;
===3: Proof Using Finite Projective Geometry===&lt;br /&gt;
A simple proof in finite projective geometry for four singers. The proof is modeled after one found in Lovasz, Pelikan, and Vesztergombi. Each voice represent a line, and points are encoded melodically. The structure of the Fano plane is sung after the proof is concluded. &lt;br /&gt;
&lt;br /&gt;
Sheet Music: [https://web.archive.org/web/20150926141246/http://www.synthesist.net/tunes/scores/FiniteProjectiveGeometry-DavidStutz.pdf PDF]. Published 2008-08-03T12:22-07. Licensed [http://creativecommons.org/licenses/by-nc-sa/3.0 CC BY-NC-SA 3.0] by [[David Stutz]].&lt;br /&gt;
&lt;br /&gt;
===4: Cellular Automata===&lt;br /&gt;
A collection of several one-dimensional cellular automata for 11 singers and one Automata Master, who introduces each by its canonical number. Binary cells are mapped onto voice part. &lt;br /&gt;
&lt;br /&gt;
Sheet Music: [https://web.archive.org/web/20151028193354/http://www.synthesist.net/tunes/scores/SimpleAutomata-DavidStutz.pdf PDF]. Published 2008-08-03T12:22-07. Licensed [http://creativecommons.org/licenses/by-nc-sa/3.0 CC BY-NC-SA 3.0] by [[David Stutz]].&lt;br /&gt;
&lt;br /&gt;
===5: Mascheroni Circles===&lt;br /&gt;
&lt;br /&gt;
===6: Quantum Spin Network===&lt;br /&gt;
&lt;br /&gt;
===7: 16 Color Prime Generating Automaton===&lt;br /&gt;
Solo vocal version of a chant encoding a sixteen color cellular automaton that calculates prime numbers. The encoding uses melodic fragments to iteratively represent the colors of the automaton. This algorithmic piece was typeset using Lilypond.&lt;br /&gt;
&lt;br /&gt;
Sheet Music: (&amp;lt;!-- http://www.synthesist.net/tunes/scores/PrimeGeneratingAutomaton-DavidStutz.pdf --&amp;gt;NOT CAPTURED by [[Internet Archive]]). Published 2008-08-03T12:22-07. Licensed [http://creativecommons.org/licenses/by-nc-sa/3.0 CC BY-NC-SA 3.0] by [[David Stutz]].&lt;br /&gt;
&lt;br /&gt;
===8: Deriving the Quadratic Equation===&lt;br /&gt;
An straightforward encoding into chant and drone of completing the square to derive the quadratic equation&lt;br /&gt;
&lt;br /&gt;
Sheet Music: ([https://web.archive.org/web/20210131233024/http://www.synthesist.net/tunes/scores/Quadratic-DavidStutz.pdf PDF]). Published 2008-08-03T12:22-07. Licensed [http://creativecommons.org/licenses/by-nc-sa/3.0 CC BY-NC-SA 3.0] by [[David Stutz]].&lt;br /&gt;
&lt;br /&gt;
===?: Mascheroni Construction of the Unit Square===&lt;br /&gt;
A piece for any number of players or singers, which constructs Euclid&#039;s Brides&#039;s Chair Proof using compass alone. &lt;br /&gt;
&lt;br /&gt;
Sheet Music: [https://web.archive.org/web/20151028200526/http://www.synthesist.net/tunes/scores/MascheroniConstructionOfTheUnitSquare-DavidStutz.pdf PDF]. Published 2008-08-03T12:22-07. Licensed [http://creativecommons.org/licenses/by-nc-sa/3.0 CC BY-NC-SA 3.0] by [[David Stutz]].&lt;br /&gt;
&lt;br /&gt;
===?: Asynchronous Automaton===&lt;br /&gt;
A simple asynchronous automaton.&lt;br /&gt;
&lt;br /&gt;
Sheet Music: (&amp;lt;!-- http://www.synthesist.net/tunes/scores/AsynchronousAutomaton_Rule245-DavidStutz.pdf --&amp;gt;NOT CAPTURED by [[Internet Archive]]). Published 2008-08-03T12:22-07. Licensed [http://creativecommons.org/licenses/by-nc-sa/3.0 CC BY-NC-SA 3.0] by [[David Stutz]].&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Anathem]]&lt;br /&gt;
* [[David Stutz]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
* [https://soundcloud.com/ztutz/sets/iolet-music-from-the-world-of-anathem Soundcloud playlist with 128kbps mp3]&lt;br /&gt;
* [https://web.archive.org/web/20120319091332/http://synthesist.net/tunes/scores/iolet.xml Musical scores]&lt;br /&gt;
* [https://web.archive.org/web/20230307194606/https://longnow.org/ideas/iolet-the-music-of-anathem/ 02008-08-22 [[Long Now]] article on IOLET.]&lt;br /&gt;
* [https://musicbrainz.org/release/7f7b9248-82bf-48a8-a837-934486417aad musicbrainz.org CD release info]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Children_of_Strife&amp;diff=198234</id>
		<title>Children of Strife</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Children_of_Strife&amp;diff=198234"/>
		<updated>2026-09-20T10:11:34Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: upload notes having finished the book&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Children of Strife&#039;&#039;&#039; is a [[2026]] [[science fiction]] novel by [[Adrian Tchaikovsky]] that is the third sequel to &#039;&#039;[[Children of Time]]&#039;&#039;. It is preceded by &#039;&#039;[[Children of Memory]]&#039;&#039;.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Prev: &#039;&#039;[[Children of Memory]]&#039;&#039;&lt;br /&gt;
* Author: [[Adrian Tchaikovsky]]&lt;br /&gt;
* Publication date: [[2026-03-17]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
; Alis&lt;br /&gt;
: (b4c2.1) A researcher collaborating with Bianca, Leus, and Polonius. Is pulled out of a simulation on Imir by Avrana Kern due to cognitive errors.&lt;br /&gt;
&lt;br /&gt;
; Anbar Ilshir&lt;br /&gt;
: (b4c8.1) &#039;&#039;Marduk&#039;&#039; engineering chief.&lt;br /&gt;
&lt;br /&gt;
; Avigael Kern&lt;br /&gt;
: (b4c4.3) A Kern instance that budded off the main group and asserted her own right to an independent existence. Helps Cato and Alis rescue the remainder of their crew.&lt;br /&gt;
&lt;br /&gt;
; Avrana Kern&lt;br /&gt;
: (b4c2.1) Pulls Alis out of a simulation on Imir.&lt;br /&gt;
&lt;br /&gt;
; Bartilow&lt;br /&gt;
: (b4c8.5) A Classisist of the &#039;&#039;Marduk&#039;&#039;. Witnesses the creation of a cult around Hartmand&#039;s invitation to his loyalists of Earth. Sees the first tendrils of invasive growth within the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Bianca&lt;br /&gt;
: (b4c2.1) A researcher collaborating with Alis, Leus, and Polonius.&lt;br /&gt;
&lt;br /&gt;
; Changing Thing&lt;br /&gt;
: (b4c11.3; a.k.a. Mira) A mysterious sometimes humanoid entity vulnerable only to fire that Neco brings Four Dragon Hold.&lt;br /&gt;
&lt;br /&gt;
; Cosimir&lt;br /&gt;
: (b4c6.2; a.k.a. &#039;&#039;&#039;Lamya Cosimir&#039;&#039;&#039;) Engineering Chief of the ark ship &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Domus &lt;br /&gt;
: (b4c1.1) Underseer AI for &#039;&#039;Pancreator&#039;&#039;. (b4c5.6) Killed, along with all non-biological digital systems, by a signal from Earth.&lt;br /&gt;
&lt;br /&gt;
; Gerey Hartmand&lt;br /&gt;
: (b4c1.1) Tyrannical leader of the terraforming project aboard the &#039;&#039;Pancreator&#039;&#039;. Resentful terraforming competitor to Avrana Kern.&lt;br /&gt;
&lt;br /&gt;
; Goscari&lt;br /&gt;
: (b4c6.2) Science Chief of the &#039;&#039;Nergal&#039;&#039;. A young-looking man with fluffy hair.&lt;br /&gt;
&lt;br /&gt;
; Hannoy&lt;br /&gt;
: (b4c6.3) A tall thin old woman of management whom Cosimir meets.&lt;br /&gt;
&lt;br /&gt;
; Hieron&lt;br /&gt;
: (b4c8.1) &#039;&#039;Marduk&#039;&#039; science chief.&lt;br /&gt;
&lt;br /&gt;
; Ken Pil&lt;br /&gt;
: See &#039;&#039;&#039;Pil&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Kieraven&lt;br /&gt;
: (b4c8.4) A former Hoarder in childhood who lost his eyes during a raid. Had their Security aptitudes tested indirectly by undercover Project Management agents while still working in the crime ring. &lt;br /&gt;
&lt;br /&gt;
; Lamya Cosimir&lt;br /&gt;
: See &#039;&#039;&#039;Cosimir&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Leus&lt;br /&gt;
: (b4c2.1) A human researcher collaborating with Alis, Bianca, and Polonius.&lt;br /&gt;
&lt;br /&gt;
; Mira&lt;br /&gt;
: (b4c2.4) Alis&#039;s therapist. (b4c2.6) Awakens using Alis&#039;s personality after landing on Hartland. (b4c4.4) While still dazedly using Alis&#039;s personality, encounters and is shot by Neco Kasmar. (b4c9.5) A Nodan mind repository. (b4c11.3; a.k.a. Changing Thing) Is sent Neco to be their representative.&lt;br /&gt;
&lt;br /&gt;
; Neco Kasmar&lt;br /&gt;
: (b4c9.2) A Hartland native and resident of Four Dragon Ford. Witnesses Mira dissolve a pig from the inside.&lt;br /&gt;
&lt;br /&gt;
; Ottis Milner&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand. Likes meetings.&lt;br /&gt;
&lt;br /&gt;
; Palline&lt;br /&gt;
: (b4c6.2) A courier on the &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Peligrent&lt;br /&gt;
: (b4c6.2) Cosimir&#039;s second. A depressed-looking man.&lt;br /&gt;
&lt;br /&gt;
; Pil&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand. (b4c10.6) Dies by suicide while Conflating.&lt;br /&gt;
&lt;br /&gt;
; Polonius&lt;br /&gt;
: (b4c2.1) A male spider researcher collaborating with Alis, Bianca, and Leus.&lt;br /&gt;
&lt;br /&gt;
; Redina Kott&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand. Skilled at hiding emotions. Enjoys watching coworker drama.&lt;br /&gt;
&lt;br /&gt;
; The Seven Hoarders&lt;br /&gt;
: (b4c8.4) Nepotistic oligarchs (?) of Earth during the Age of Arkships who inhibited meritocracy in favor of their own personal gain.&lt;br /&gt;
&lt;br /&gt;
; Sui Dorcheson&lt;br /&gt;
: (b4c1.1) Second Visionary of the &#039;&#039;Pancreator&#039;&#039;, alongside Gerey Hartmand. Judged lacking by Kott.&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; Earth&lt;br /&gt;
: (b4c1.1) Origin of Hartmand and the other Pancreators.&lt;br /&gt;
&lt;br /&gt;
; Four Dragon Ford&lt;br /&gt;
: (b4c9.2) A human settlement on Marduk amid continuous conflict with The Life.&lt;br /&gt;
&lt;br /&gt;
; Imir&lt;br /&gt;
: (b4c2.1) A world hosting a kilometer-scale machine that records people and creates simulated worlds for them to inhabit.&lt;br /&gt;
&lt;br /&gt;
; Hartland &lt;br /&gt;
: (b4c3.1) Name given by Hartmand to the planet he and the other Pancreators terraform.&lt;br /&gt;
&lt;br /&gt;
; Marduk (world)&lt;br /&gt;
: (b4c11.3) What the inhabitants of Four Dragon Ford call their world.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; conflation&lt;br /&gt;
: (b4c5.1) A process of mentally communing with the planet Hart.&lt;br /&gt;
&lt;br /&gt;
; Life, The&lt;br /&gt;
: (b4c11.3) The sapient interconnected flora and fauna of Marduk that is constantly inhibiting the expansion of human settlement.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Marduk&#039;&#039; (arkship)&lt;br /&gt;
: (b4c6.4) Arkship originally meant to be captained by Olumo but instead given to Kamya Cosimir, former Chief Engineer of the failed &#039;&#039;Nergal&#039;&#039;.  (b4c8.1) Arrives at Hartman&#039;s world.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Nergal&#039;&#039;&lt;br /&gt;
: (b4c6.2) An ark ship that Lamya Cosimir, Goscari, and Peligrent hoped to ride away from Earth. Crashed during an engine test.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Pancreator&#039;&#039;&lt;br /&gt;
: (b4c1) terraforming ship/station&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Pangu&#039;&#039;&lt;br /&gt;
: (b4c6.4) An early arkship from Earth that, like many of its generation, both encountered grave problems shortly after disembarking but managed to safely return to Earth orbit under the command of Captain Olumo, making him a hero.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Dissenter&#039;&#039;&lt;br /&gt;
: (b4c4.3) The squid-designed ship that fragmented into two sections, one of which Alis, Cato, and Avigael Kern inhabit. Cato nominally considers himself captain of this craft although Avigael is in direct control of all aspects.&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
; The First Age (The Age of Terraforming)&lt;br /&gt;
: The initial terraforming of the planet Hartland. Primary POV: &#039;&#039;Assistant Visionary&#039;&#039; Redina Kott.&lt;br /&gt;
&lt;br /&gt;
; The Second Age (The Age of Arkships)&lt;br /&gt;
: The &#039;&#039;Marduk&#039;&#039;’s journey from Earth to Hartland. Primary POV: &#039;&#039;Captain&#039;&#039; Lamya Cosimir.&lt;br /&gt;
&lt;br /&gt;
; The Third Age (The Age of Exploration)&lt;br /&gt;
: The exploration of Hartland by a misfit Portiid-Human-Stomatopod-Nodan-AI crew. Primary POV: Alis.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Children of Strife chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! §&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| Kott physically enters Hartland&#039;s quarters. Kott finds Hartland arguing with Dorcheson. Kott announces Pil is harming the terraforming project.&lt;br /&gt;
| Kott, Hartland, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Hartland gathers the rest of the crew. Kott privately criticizes Milner&#039;s insistence on holding meetings with artificial personality models of investors. A summary by Kott about how Hartmand stole a planet from Kern. How Hartmand&#039;s rapid terraforming project has repeatedly failed. Kott privately believes her data linking is responsible. How Kott believes Hartmand will murder one of his Visionaries and so Kott tattle-telling on Pil improves her survival chances. Hartland confronts Pil who says he has saved the project.&lt;br /&gt;
|  Kott, Hartland, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| Kott and Pil get high together. Kott notices Pil acting strangely. Kott clears her blood chemistry of mind-altering substances and notices the sixth terraforming failure is unlike the previous failures. Kott sees microbial fiefdoms rising and competing against others instead of global mass death. Pil says he applied Kott&#039;s own method to the terraforming microbes. Kott does not understand Pil but knows she must tell Hartland what Pil has done to avoid Pil implicating her.&lt;br /&gt;
| Kott, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Pil demonstrates he has given independence to the terraforming microbes which now are evolving uncontrollably. Instead of instant global failure, the planet&#039;s microbial life fights itself and the terraformer extermination tools to survive.&lt;br /&gt;
| Kott, Hartland, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Alis meets with her research companions but is confused by their findings. Avrana Kern speaks to her, beginning to disconnect Alis from a simulation.&lt;br /&gt;
| Alis, Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Alis protests disconnection, espousing delusions of grandeur. Alis notices her research companions are empty. Alis argues with Kern, not convinced that she has been taken out of the simulation completely. Kern says that Alis has been given up on for hundreds of years. Alis chases Kern through a large ark ship corridor, unable to catch up. Alis enters a cold sleep pod. Alis feels herself in plastic container, not unlike a metamorphosis cocoon of a butterfly and fights to break free.&lt;br /&gt;
| Alis (POV), Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.3&lt;br /&gt;
| Alis finds herself disoriented and drowning. A large scary shrimp-like creature approaches her which she slaps away. The creature brutally punches Alis, caving her chest in on the left side. Thanks to the trauma, Kern finally establishes subverbal contact with Alisʼs implants. Using a robotic spider, Kern supplies oxygenated blood to Alisʼs brain, bypassing her mortally wounded circulatory system. Alis asks Kern to let her die so she can sooner restart a fresh loop of the simulation. Kern informs Alis that she is no longer in a simulation.&lt;br /&gt;
| Alis (POV), Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.4&lt;br /&gt;
| Kern tells Alis that Alis did spend much longer than a human life time within a simulation machine attempting to discover its memories of its creators. Alis recounts that she and her colleagues eventually discovered that the machine learns people that dive into it and adjusts simulations sycophantically to appease the expectations of said divers. Kern affirms Alisʼs memory on this matter. Kern goes further and recounts that Alis emerged from the simulation mentally damaged, unable to see other people as real and thus injured many people. Kern shares that Alisʼs body was changed to filter pain. Kern says Alis has the ability to cope with traumatic experiences like having her chest caved in since, at her core, Alis does not feel what she experiences is reality. Kern says the water-filled ship they are on is filled with misanthropes like Alis. Alis learns the shrimp creature is a stomatopod named Cato. Kern tells Alis she isn&#039;t Avrana Kern. Alis, confused by the overwhelmingly inconsistent fact pattern checks out mentally.&lt;br /&gt;
| Alis (POV), Kern, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&lt;br /&gt;
| Kern says she is Kern, but not Avrana Kern. Alis learns from Kern that she has been kept in a therapeutic coma and maintained as cargo, ignored by the ship&#039;s crew. Cato signs to Alis an urgent message that a disaster has endangered half of the shipʼs crew which ventured out some time ago and is imperiled in the inner region of the local solar system. Kern explains that Cato does not wish to render aid to his crewmates alone and prematurely awakened Alis in order to help him.&lt;br /&gt;
| Alis (POV), Kern, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 2.6&lt;br /&gt;
| Fake Alis wakes disenters herself from the soil. She is in a dark forest at night with stars visible in the sky. She grapples with her incomplete memory and wonders where her fellow crewmates are. A growl frightens her from the dark.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3.2&lt;br /&gt;
| Kott observes the repeated failures of the terraforming team to produce any life on the planet that does not resemble bugs. Pilʼs change to the microbial life causes the evolution of trees occasionally, but for the most part it is a green mono culture of bugs, bugs, and more bugs. Terraformer Dorcheson attempts to eradicate all life in order to reset the project. Most bugs are killed off in a planetwide slaughter caused by degradation of their shells and joints. However, quickly the life reverts again back to bugs. Hartmand calls an all-hands meeting to point blame.&lt;br /&gt;
| Kott (POV), Pil, Hartmand, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 3.3&lt;br /&gt;
| Pill is tried by Hartmand and a jury of his peers of Dorchester, Kott, and Milner. Pil is sentenced to confined isolation in his cabin. Dorchester continues to attempt extermination but fails. Kott visits Pil, thinking that she may be able to use his creativity to secure her survival at the next outburst from Hartmand who continues to be frustrated that bugs persist in occupying the planet he is trying to terraform. Kott visits Pil and finds him at a workstation with seemingly complete access to the planetʼs data feeds going to the terraforming ship. Kott surprises Pil when she tells him he has created life on the planet; Pil seems to regain his mad erudite persona and composure when Kott goes further and says Pil has created a system on the planet. Pill shows that he has established a computer network using Kott&#039;s techniques to turn the planetʼs life into a computer. Pil explains that Dorcheson&#039;s extermination chemicals are simply an instruction that the planet&#039;s microbial life executes but not before the life creates new instructions for itself.  Pil injects Kott with a microbial agent that nullifies her integral nano machine defenses.&lt;br /&gt;
| Kott (POV), Pil, Hartmand, Dorchester, Milner&lt;br /&gt;
|-&lt;br /&gt;
| 3.4&lt;br /&gt;
| Pil medically transforms Kott into the god of the planet by hooking up her nervous system to the control system for evolving and shaping planetary flora and fauna. Kott relishes in the power that she has been given and creates almost Earth-like analogues of creatures that she knows of. Kott is then woken up in her human body to see the Pantheon surrounding her, including Pil. Kott sees herself as the goddess of this world.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 3.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| A brief history of stomatopod biology, physiology and culture. A discussion about their ability to one-Shot kill each other with their powerful punches. How Cato is uncertain whether Alis will be of help in the current crisis.&lt;br /&gt;
| Cato, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 4.2&lt;br /&gt;
| A summary of Cato&#039;s stomatopod cultural heritage and biological psychological biases. Cato needs Alisʼs assistance but is too proud to do so unless Alis submits humbly and deferentially; Cato feels no guilt at mortally wounding Alis when she woke up confusedly flailing at him. An explanation that the rest of the crew went exploring signs of human artifacts in the nearby solar system and then broadcast a distress signal. Kern recommends Alis print herself a space suit. Alis continues to fear Cato but has translation equipment online to understand his visual signing.&lt;br /&gt;
| Cato, Alis, Kern&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| Kern explains to Alis that she herself is a Kern instance that decided to exist independently after experiencing some significant events. Kern tells Alis to call her Avigael Kern to differentiate herself from the wider interstellar Avrana Kern mind. Avigael tells Alis that Cato is an old fighter who has been engaged in a conflict of his own making which has now involved Alis and others of the &#039;&#039;Dissenter&#039;&#039;. Cato and Alis see the absurd sight that lured the rest of the crew to explore. Avigael detects a survivor&#039;s signal.&lt;br /&gt;
| Kern, Alis, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 4.4&lt;br /&gt;
| A fake Alis with missing memories crawls from a crash site. She vomits out blood and bones. Fake Alis encounters a woman smaller than herself. The horrified woman shoots Fake Alis cleanly through the chest. Fake Alis recovers to her own surprise. The horrified woman flees. Fake Alis is confused by her memories of being in the simulation. Fake Alis decides to pursue the woman.&lt;br /&gt;
| Mira (POV), Neco&lt;br /&gt;
|-&lt;br /&gt;
| 5.1&lt;br /&gt;
| Kott yearns to be plugged back into the planet again having been disconnected forcibly after a month-long induced coma. Hartmand and company begin manually terraforming the planet via a process Pil calls &#039;&#039;Conflation&#039;&#039;. They remove the bugs. After some time though, the bugs returned in earnest, evolving to overtake the more pleasing tetrapod endoskeletal life that Hartman wished for. Kott receives permission to Conflate with the planet again and does so in limited capacity under intense scrutiny. Kott inhibits bug evolution and promotes endoskeletal evolutionary pathways. However, life on the planet seems to be hard-coded to favor the recurring evolution of bugs again and again. Events on Earth begin to take their attention.&lt;br /&gt;
| Kott (POV), Pil, Hartmand&lt;br /&gt;
|-&lt;br /&gt;
| 5.2&lt;br /&gt;
| Events on Earth accelerate. Hartmand and company receive word that war has taken over an entire continent. Various of their colleagues are killed. Hartmand regrets not being present to exploit the chaos with his own supporters. Hartmand expects to receive word of evacuees of his own loyalists departing Earth to migrate to Hartland. Kott notes that Hartmand has not been keeping Earth abreast of Hartland&#039;s developments. Kott decides to murder Hartmand and Dorcheson for their glee at the news of political instability on Earth.&lt;br /&gt;
| Kott (POV), Hartmand, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 5.3&lt;br /&gt;
| Kott schemes against Hartmand and the other pancreators. Kott plans to secretly give the bugs an evolutionary advantage and then pin the blame on Pil.  Kott, Hartmand, and the other crew take turns undoing each otherʼs Conflation work. Hartmand insists on sculpting predators; Milner sculpts herbivorous prey.&lt;br /&gt;
| Kott (POV), Hartmand, Pil, Dorcheson, Milner&lt;br /&gt;
|-&lt;br /&gt;
| 5.4&lt;br /&gt;
| Kott emerges from conflation.  Kott realizes that she and the other pancreators have finally created something of value for the first time.  Kott recognizes they were parasites on Earth, extracting value for profit.  The pancreators mock and scoff at fall of Earth as they receive word that various technological disasters are making the planet uninhabitable.  Hartmand and Dorcheson joke that someone should have done something to prevent disaster.  Kott prints a knife but cannot push herself to slit her wrists to kill herself.&lt;br /&gt;
| Kott (POV), Hartmand, Pil, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 5.5&lt;br /&gt;
| Hartmand cheers on the collapse of Earth for the power vacuum that he and his supporters will one day be able to fill.  Kott grapples with her nascent empathy.  Hartmand continues to vovaliize faith that his followers from Earth will soon arrive.  Kott dives into conflation.  She is unexpectedly secretly joined by Pil.  Pil proposes he and Kott mutiny against the others.&lt;br /&gt;
| Kott (POV), Pil, Hartmand&lt;br /&gt;
|-&lt;br /&gt;
| 5.6&lt;br /&gt;
| The pancreators watch the final throes of advanced human civilization in Earth&#039;s solar system. A final broadcast is received that disables Domus and cuts power to the ship.&lt;br /&gt;
| Kott (POV), Hartmand, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 6.1&lt;br /&gt;
| A very brief summary of inevitably uninhabitable conditions on Earth following its technological collapse.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.2&lt;br /&gt;
| Cosimir, Goscari, and Peligrent witness the fall and destruction of their ark ship &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
| Cosimir (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 6.3&lt;br /&gt;
| Hannoy approaches Cosimir at mealtime to tell her she has the aptitude to be a captain. Cosimir reflects that to be captain material is to be a ruthless bastard willing to dispose of human lives if survival requires. Cosimir tells Hannoy as much and is invited by Project Management to meet.&lt;br /&gt;
| Cosimir (POV), Hannoy&lt;br /&gt;
|-&lt;br /&gt;
| 6.4&lt;br /&gt;
| Hannoy introduces Cosimir to Captain Olumo.  Cosimir recalls his history as captain of the &#039;&#039;Pangu&#039;&#039;, one of the early failed ark ships that managed to return to Earth safely.  Hannoy plays a translation of an audio recording of Hartmand to Cosimir; Hartmand invites his followers to settle his planet if they are deprived.  Olumo confesses he cannot serve as Captain due to radiation exposure he suffered while aboard the &#039;&#039;Pangu&#039;&#039;.&lt;br /&gt;
| Cosimir (POV), Hannoy, Olumo&lt;br /&gt;
|-&lt;br /&gt;
| 6.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7.2&lt;br /&gt;
| Cato, Alis, and Avigael find the corpse of spider. Helena. Cato saves Avigael from being captured in a plant trip.&lt;br /&gt;
| Alis (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 7.3&lt;br /&gt;
| Cato, Avigael, and Alis breach and board the derelict Arcship. They find cargo pods full of corpses. Alis recalls the failed arkship of Imir.&lt;br /&gt;
| Cato, Alis, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 7.4&lt;br /&gt;
| Alis retrieves a Kern robot. Excavation. Cato finds evidence a survivor recently escaped the ark. Avigael suspects Mira.&lt;br /&gt;
| Cato, Alis, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 8.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 8.2&lt;br /&gt;
| Cosimir orders the immediate settling of the planet below them.&lt;br /&gt;
| Cosimir&lt;br /&gt;
|-&lt;br /&gt;
| 8.3&lt;br /&gt;
| Hieron leads a team to explore the kernel from which the orbital elevator plant is growing. Hieron find four corpses of the ancients. She brings back samples to the &#039;&#039;Marduk&#039;&#039;. A sample awakens and grows.&lt;br /&gt;
| Hieron (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 8.4&lt;br /&gt;
| Kieraven leads a landing party. Fennec (?) takes an experimental breath. Kieraven and company gun down a mega fauna they agitated.&lt;br /&gt;
| Kieraven (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 8.5&lt;br /&gt;
| Cosimir broadcasts Heartland&#039;s habitability. Bartilow witnesses the birth of a cult around Hartmandʼs recording. Bartilow sees invasive flora aboard the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
| Cosimir (POV), Bartilow (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.1&lt;br /&gt;
| Mira remembers her artisanal primary identity while being injured by a beast of Hartland. Mira forces the beast to swallow her body whole.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.2&lt;br /&gt;
| Neco witnesses Mira dissolve a pig after being vored. Flees to Four Dragon Ford.&lt;br /&gt;
| Neco Kasmar (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.3&lt;br /&gt;
| How Portiafabian came to be.&lt;br /&gt;
| Portia (POV), Fabian, Avigael &lt;br /&gt;
|-&lt;br /&gt;
| 9.4&lt;br /&gt;
| Mira follows Neco to Four Dragon Ford. Mira recalls Arkship languages and hails the fortress settlement. Mira hungers for the experiences of its inhabitants.&lt;br /&gt;
| Mira (POV), Neco&lt;br /&gt;
|-&lt;br /&gt;
| 9.5&lt;br /&gt;
| Avigael recounts to Alis that Mira is a Nodan entity who must be retrieved for the planet&#039;s sake.&lt;br /&gt;
| Alis (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.6&lt;br /&gt;
| Mira continues to plead for the fortress inhabitants to listen to her but is only continuously shot. The gates open for melee forces to defend upon her.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.7&lt;br /&gt;
| Avigael describes how the trauma of escaping the derelict arkship and landing on a hostile planet may cause Mira to go feral. Under enough damage, Mira may be lost.&lt;br /&gt;
| Alis (POV), Avigael, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 9.8&lt;br /&gt;
| Fortress forces continue butcher Mira. Mira finally retaliates, absorbing her attackers. Udin orders flamethrowers to be deployed which ultimately drive Mira back into the forest.&lt;br /&gt;
| Neco (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.9&lt;br /&gt;
| Mira fights to maintain individuality and consciousness. Mira is driven away by fire. Mira flees into the woods where flora and fauna continuously reject and attack her.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 10.1&lt;br /&gt;
| The visionaries fight for survival and thenselves aboard their derelict dead ship.&lt;br /&gt;
| Hartmand, Pil, Kott (POV), Milner, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 10.2&lt;br /&gt;
| Kott wanders the &#039;&#039;Pancreator&#039;&#039;. She sees a glow. Pil shows Kott the biological Conflation interface with the planet is still operational despite the loss of Domus. Pil invites Kott to resume influencing the terraforming activities.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 10.3&lt;br /&gt;
| Kott and Pil work to restore systems of the pen creator despite the dwindling cognitive resources available to the diminishing biodiversity available within the planets below. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10.4&lt;br /&gt;
| Caught explains to Hartmand, Dorchester, and Milner how she restores power with biological systems. Dorchester demands that the pen crate should be purged of all biological growth. Pill promises to restore communications with Earth thus appealing to Hartmand who gives his blessing to the plan.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10.5&lt;br /&gt;
| The remaining Pantheon stabilizes the &#039;&#039;Pancreator&#039;&#039;.&lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 10.6&lt;br /&gt;
| Kott and Pil argue.  Kott resolves to murder Pil.  Pil commits suicide.  Kott finds Pil&#039;s body overgrown with fungal growths and flora.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.1&lt;br /&gt;
| A summary of stomatopod evolution and history.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.2&lt;br /&gt;
| Cato suits up to deploy to the surface with Kern and Alis. Portiafabian also desire to join the expedition against Avigael&#039;s advice but Cato permits. Avigael pushes back against Cato&#039;s militant attitude so Cato agrees to being deterrents in addition to lethal weaponry.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.3&lt;br /&gt;
| Command appoints Neco to be ambassador to the Changing Thing. Neco is escorted by the Life to speak to Changing Thing. Neco converses with Changing Thing which laments that Mira is holding itself back from becoming the world. Changing Thing, against Mira&#039;s protestation, consumes Neck in search of understanding.&lt;br /&gt;
| Neco (POV), Mira, Ellan, Mezclo, Udin&lt;br /&gt;
|-&lt;br /&gt;
| 11.4&lt;br /&gt;
| Portiafabian grapple with their their mixed mind. Cato pilots the drop ship containing Abigail himself, Alice and Portiafabian to the planet surface. Winged creatures rise up from the canopy below and attack the medusoid dropship.&lt;br /&gt;
| Portiafabian (POV), Cato, Alis, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 11.5&lt;br /&gt;
| Cato engages in close combat pterosaurs attacking the dropship. Cato dispatches hostile pterosaurs and drops to the planet surface satisfied.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.6&lt;br /&gt;
| Neco Converses with Mira in a virtual world of peaceful green.&lt;br /&gt;
| Neco (POV), Mira&lt;br /&gt;
|-&lt;br /&gt;
| 12.1&lt;br /&gt;
| Caught iscon&#039;s pills corpse in a far corner of the pen Creator. Caught claims credit for pills, polarized light controls system and chairs. The management role of the planets with the other remaining three pen creators. All continues for some time until it ends.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.2&lt;br /&gt;
| Caught dreams about colonists from Earth, arriving and destroying heartland.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.3&lt;br /&gt;
| Caught and the other pen creators continue to shape the world. Their physical and mental health declines. Milner tells caught that something great has happened.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.4&lt;br /&gt;
| Milner discovers The life has established itself in the vacuum of space spreading fronds and flowers outside of the pen creators hull. Cut internally. Despairs at the prospect that the life within the pen curator will go on perpetually.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.5&lt;br /&gt;
| The remaining pen creators hold in all hands. Dorchester proposes constructing a new station. Parks bend proposes descending down to the planet to live in their creation.  Milner has no proposal and research his confidence that the life will provide. Caught offers, no suggestion and simply laughs. &lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 12.6&lt;br /&gt;
| Caught investigates yet another infestation of bugs. Caught witnesses. Ken pill speaks to kott through a body composed of bugs.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.1&lt;br /&gt;
| Hiring pleads to customer for time to research further into the organism on the planet. Engineering reports to cosmere that the plant has infected the ship. Tendrils eat away at the superstructure of the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
| Hieron pov&lt;br /&gt;
|-&lt;br /&gt;
| 13.2&lt;br /&gt;
| Summary of how the beanstalk infected the Marduk. The life becomes aware of the invader.&lt;br /&gt;
| The Life (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 13.3&lt;br /&gt;
| The old fated final battle for the Marduk. Over the course of 48 hours, the life invades and conquers the Marduk adopting an increasingly intelligent strategy of evacuating compartments. Cosmere orders and immediate evacuation of the Marduk to the planet&#039;s surface. &lt;br /&gt;
| Cosimir (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 13.4&lt;br /&gt;
| Kieraven leads evacuation of cargo onto shuttles. Ilshir abandons duty to attempt rescuing Hieron. Bartelow convinces Cosimir to evacuate. Hieron witnesses a body made of plants appear within her doomed lab. Hieron dies.&lt;br /&gt;
| Kieraven (POV), Cosimir (POV), Hieron (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 13.5&lt;br /&gt;
| Kieraven makes camp. Kieraven is pleased to hear Cosimir is in the next and last shuttle. Night falls. Kieraven sees a dragon-human chimera watch the colonists in the rain.&lt;br /&gt;
| Kieraven (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 13.6&lt;br /&gt;
| Cosimir and Kieraven establish a colony. Kieraven plans to establish a second settlement. Enelisse Jesper, former subordinate of Goscari of the &#039;&#039;Nergal&#039;&#039;, reports to Cosimir.&lt;br /&gt;
| Kieraven, Cosimir (POV), Enelisse Jesper&lt;br /&gt;
|-&lt;br /&gt;
| 14.1&lt;br /&gt;
| Alis, Portifabian, and Cato take stock around the downed ship.  The shipʼs Avigael Kern instance is dead.  They consult with the orbital ship Avigael.  Cato fires an explosive warning shot at armed humans that approached, injuring Alis.&lt;br /&gt;
| Alis, Portifabian, Cato, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 14.2&lt;br /&gt;
| Ellan convenes with other leaders to review intelligence of the new party of invaders (Cato, Alis, Portiafabian).  Ellan in Four Dragon Ford parleys at a distance with Alis who worryingly resembles the Changing Thing.  Alis mentions Earth.  Ellan strongly warns the intruders to go away.&lt;br /&gt;
| Ellan (POV), Udin, Mezclo, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 14.3&lt;br /&gt;
| Alis and company walk to meet Mira, followed by local humans whom Alis warns to keep their distance. Alis talks to the gelatinous biome that is Mira. Mira says the world is eating her and so she must eat it back in turn. Alis offers assistance; Mira requests Alis enter her to stabilize her memories. Mira pulls in Alis into herself.&lt;br /&gt;
| Alis (POV), Avigael, Cato, Portiafabian, Mira&lt;br /&gt;
|-&lt;br /&gt;
| 14.4&lt;br /&gt;
| Cato retreats from an explosive expansion of Mira following its ingestion of Alis.  Avigael translates Cato&#039;s desire for the local humans to assist him. Cato, Portiafabian, and the humans travel back to the fortress.&lt;br /&gt;
| Cato (POV), Avigael, Portiafabian&lt;br /&gt;
|-&lt;br /&gt;
| 14.5&lt;br /&gt;
| Avigael demands to know the history of the world and why it, one of her worlds, turned so hostile. Mezclo recounts a summary; Avigael&#039;s haughty dialogue offends the humans. A Neco puppet interrupts the discussion. A beast agent of The Life arrives and destroys the Neco puppet with bites, claws, and acid. The beast proclaims in Classicist language that the people must destroy such things with fire or acid or suffer punishment. Avigael irritatedly recognizes the face of the beast as that of Gerey Hartmand.&lt;br /&gt;
| Ellan (POV), Mezclo, Udin, Neco, Mira, Portiafabian, Avigael, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 15.1&lt;br /&gt;
| Kott finds evidence of Pil&#039;s mind imprinted in insect infestations that occur repeatedly across the planet. Kott confesses she misses him. Pil invites Kott to join him.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 15.2&lt;br /&gt;
| Kott contemplates transferring her mind into the plantary ecosystem-based connectome as Pil inadvertently did.&lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 15.3&lt;br /&gt;
| Kott calls a final meeting. Kott dies when the Life finally breaches their last habitable section of the &#039;&#039;Pancreator&#039;&#039; while Conflating.&lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 15.4&lt;br /&gt;
| Kott awakens in the bodies of her favorite feline predator. Kott discovers, after being repeatedly predated by sabertoothed beasts, that Hartmand persists as she did. Kott discovers Hartmand, Dorcheson, and Milner all secretly counted on immortality within the planet&#039;s biomass and did not intend to save one another. Dorcheson inhabits wild swine. Milner inhabits rodents. Hartmand inhabits apex beasts. Kott screams in horror across all her bodies that she cannot die.&lt;br /&gt;
| Kott (POV), Hartmand, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 15.5&lt;br /&gt;
| Kott spends countless time predating Pil and Milner. Pil unexpectedly warns Kott of changes coming. Kott hears the first shuttles descending from the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 15.6&lt;br /&gt;
| Gerey Hartmand calls a meeting to discuss the arrival of the &#039;&#039;Marduk&#039;&#039;. Hartmand says the people should be driven to the planet to worship him. Dorcheson says the invaders must be exterminated.&lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 16.1&lt;br /&gt;
| Alis parleys with Mira and Neco. Neco explains the lore of the Life and its brutal desire for entertainment and worship. Mira asks Alis to find a way for the world to leave her alone so she can regain control and become fully Mira again.&lt;br /&gt;
| Alis (POV), Mira, Neco&lt;br /&gt;
|-&lt;br /&gt;
| 16.2&lt;br /&gt;
| Avigael recalls Hartmand was a terraformer she disliked and wouldn&#039;t put past engineering a world with life that facilitates the creation of monsters. Avigael and Portiafabian conclude that Mira&#039;s Nodan nature found the artificially engineered Life a highly vulnerable information processing platform, thus explaining her massive growth.&lt;br /&gt;
| Portiafabian, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 16.3&lt;br /&gt;
| Kott hears Hartmand&#039;s call for a meeting. Kott attends.  Kott consults with Pil who struggles to recall who Kern was.  Pil opines that being killed off by the planetary infection agent brought by the newcomers may not be so bad.&lt;br /&gt;
| Hartmand, Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 16.4&lt;br /&gt;
| Cato listens impatiently while Avigael and Portiafabian converse with residents of Four Dragon Ford. Avigael asks Cato to retrieve Alis.  Cato commandeers the locals&#039; laser cutter and flies away to retrieve Alis.&lt;br /&gt;
| Cato (POV), Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 16.5&lt;br /&gt;
| Kott takes an interest in Cato.  Kott makes contact with Cato.&lt;br /&gt;
| Kott (POV), Cato&lt;br /&gt;
|-&lt;br /&gt;
| 17.1&lt;br /&gt;
| A history of stomatopod policy regarding exploration behind their seas.&lt;br /&gt;
| Cato&lt;br /&gt;
|-&lt;br /&gt;
| 17.2&lt;br /&gt;
| Kott tempts Cato to kill Mira.  Avigael Kern fights Kott&#039;s electromagnetic interference. Kott resorts to calling Gerey for help, revealing Kern is in orbit around the planet.&lt;br /&gt;
| Kott (POV), Cato&lt;br /&gt;
|-&lt;br /&gt;
| 17.3&lt;br /&gt;
| Mira describes her predicament. Mira asks Alis for a grave favor to save an innocent. Cato arrives.&lt;br /&gt;
| Mira, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 17.4&lt;br /&gt;
| Cato considers killing Mira.  Kott eggs him on .  Alis emerges and walks towards Cato.&lt;br /&gt;
| Cato (POV), Kott, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 17.5&lt;br /&gt;
| Avigael and PF discuss plans. AG says Hartmand Will not help. Many beasts cry Kern and attack Four Dragon Hold.&lt;br /&gt;
| AG, PF&lt;br /&gt;
|-&lt;br /&gt;
| 17.6&lt;br /&gt;
| A history of the expansion of Cato&#039;s recent star-faring ancestors.  How portiids helped stomatopods settle a significant isolated region of space.  How his region of star-faring stomatopods, seeded by hundreds of thousands from Kern&#039;s World, were annihilated by Cato&#039;s winning faction.  How the entire space-faring civilization was reduced to only 620 stomatopods by the time portiids came to check up on them.  Alis steps boldly into Cato&#039;s killing zone.  Kott encourages him to kill.  Cato, sobered by memories of his mass killing of his fellows, chooses not to dominate.&lt;br /&gt;
| Cato (POV), Kott, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 17.7&lt;br /&gt;
| The spider bot falls still. Mesclo laments how the planet has actively impeded the development of her ancestors. Mesclo blames the bot and the others who fell from the sky for antagonizing the Life. Mesclo considers stamping it but desists.  The bot speaks Avigael Kern&#039;s voice, identifying herself as the Kern that the Life approaching to attack Four Dragon Hold called out.  A bloody Cato returns sprinting back with Alis.&lt;br /&gt;
| Mesclo (POV), Avigael Kern, Cato, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 18.1&lt;br /&gt;
| Alis returns to FDF on Cato. Alis feels a mental weight. She notes the haphazardness of the anatomy of beasts of the Life. Alis declares she and Mira have a plan. &lt;br /&gt;
| Alis (POV), Cato, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 18.2&lt;br /&gt;
| Cato feels shame at not having killed. Alis. Cato recalls the greater shame of being one of only 72 survivors following the escalation.  Kato helps defend the besieged settlement. A legged dropship from his ship arrives. Cato notes Portifabian embodies the dropship; Cato anticipates grave futures of war between rival AIs. Avigael Kern bellows a taunt and leads the besiegers towards Mira.&lt;br /&gt;
| Cato (POV), Avigael, Alis, Portiafabian&lt;br /&gt;
|-&lt;br /&gt;
| 18.3&lt;br /&gt;
| Mesclo almost dares to board the walking ship to join Alis and the others to see the battle between technological gods. Mesclo laments almost but not quite being equipped to understand events. &lt;br /&gt;
| Mesclo (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 18.4&lt;br /&gt;
| Kott polls opinions of the pantheon and none are interested in deëscalation. Milner is distracted looting.  Dorcheson is unrepentantly murderous. Hartmand is insecure brash bravado. Pil is senescent as always. Kott starts a direct dialogue with Avigael Kern via a monkey form on the striding dropship. Kott and Avigael share backstories. Avigael Kern decides to share her plan with Kott.&lt;br /&gt;
| Kott (POV), Avigael.&lt;br /&gt;
|-&lt;br /&gt;
| 18.5&lt;br /&gt;
| Cato contemplates a philosophy of coöperation. Cato remembers Portiids offering help to him, a mass murderer of his fellow stomatopods. Cato decides to help Mira, Alis, Avigael, and Portiafabian.&lt;br /&gt;
| Cato (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 18.6&lt;br /&gt;
| Alis calls to Mira. Cato reluctantly steps forward to give Mira his eyes. Hartmand interrupts, charging forward in his spoked beasts. Kott&#039;s small mammals and Pil&#039;s arthropods attack Hartmand and Dorcheson&#039;s beasts &#039;&#039;en masse&#039;&#039;.&lt;br /&gt;
| Alis (POV), Cato, Mira, Hartmand, Avigael, Kott, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 18.7&lt;br /&gt;
| Mira carefully injects herself into Cato&#039;s body. Mira desperately holds back her hunger to devour Cato completely. Mira succeeds in reigning herself in and studies what Cato sees through his nerve tissue. Mira rallies the rebellious mass of herself to use this information and the local biomass she has already disassembled and analyzed to open a communication channel through the unsecured circularly polarized light information network to speak directly to Hartmand and company.&lt;br /&gt;
| Mira (POV), Cato&lt;br /&gt;
|-&lt;br /&gt;
| 18.8&lt;br /&gt;
| Mira expands herself into the planetary biological information network. Mira becomes a leviathan intent on relocating the pantheon to where they can do no more harm to other minds. Kott, Milner, and Dorcheson accept the deal. Pil regrets trapping the pantheon given the harm that has caused; Pil accepts a permanent end to himself. Hartmand protests but sputters out ineffectually, having lost his supporters.&lt;br /&gt;
| Mira (POV), Kott, Hartmand, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 19.1&lt;br /&gt;
| The beasts besieging Four Dragon Ford disperse.  The inhabitants beg nearby settlements and rebuild.  Mezclo accompanies an expedition to examine and possibly burn the pulsating infestation.  Mira manifests a body and explains the world will be kinder from now on and asks the people to help her remain so. She and the mass dissolve. Mezclo contemplates the Archivist task of educating and healing a damaged people now freed from tyranny.&lt;br /&gt;
| Mezclo (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 19.2&lt;br /&gt;
| Neco awakens in a panic to free-fall. Neco awakens with her mood stabilized by drugs. Alis explains to Neco that she now has a new body and life separate from the amalgam Mira nonconsensually absorbed her into. Alis offers to return Neco to Four Dragon Ford or to accompany them on their exploration spaceship. Neco accepts the offer to explore.&lt;br /&gt;
| Neco (POV), Alis&lt;br /&gt;
|-&lt;br /&gt;
| 19.3&lt;br /&gt;
| Portifabian in the dropship and Avigael in the rest of the ship prepare the &#039;&#039;Dissenter&#039;&#039; to leave Marduk orbit.  They prepare to return to the Panspecific community.&lt;br /&gt;
| Portifabian&lt;br /&gt;
|-&lt;br /&gt;
| 19.4&lt;br /&gt;
| Cato refuses to give Mira his sight. Alis and Cato discuss their philosophies about exploration and plans for the future.&lt;br /&gt;
| Alis (POV), Cato&lt;br /&gt;
|-&lt;br /&gt;
| 19.5&lt;br /&gt;
| Dorcheson, and Milner are transported in jars to Imir for download into the simulation. Kott and Mira talk in the virtual tea party. Kott requests an independent body; Mira agrees to grant the request.&lt;br /&gt;
| Mira (POV), Kott&lt;br /&gt;
|-&lt;br /&gt;
| 19.6&lt;br /&gt;
| Hartmand remains on Marduk within the bodies of his human-faced monsters. Hartmand is hunted down to eventually one last body starving on a mountain. Hartmand curses Mira who berates him for not learning to decouple enjoyment from dominion over others.&lt;br /&gt;
| Hartmand (POV), Mira&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Children_of_Strife&amp;diff=198233</id>
		<title>Children of Strife</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Children_of_Strife&amp;diff=198233"/>
		<updated>2026-09-18T19:04:47Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Children of Strife&#039;&#039;&#039; is a [[2026]] [[science fiction]] novel by [[Adrian Tchaikovsky]] that is the third sequel to &#039;&#039;[[Children of Time]]&#039;&#039;. It is preceded by &#039;&#039;[[Children of Memory]]&#039;&#039;.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Prev: &#039;&#039;[[Children of Memory]]&#039;&#039;&lt;br /&gt;
* Author: [[Adrian Tchaikovsky]]&lt;br /&gt;
* Publication date: [[2026-03-17]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
; Alis&lt;br /&gt;
: (b4c2.1) A researcher collaborating with Bianca, Leus, and Polonius. Is pulled out of a simulation on Imir by Avrana Kern due to cognitive errors.&lt;br /&gt;
&lt;br /&gt;
; Anbar Ilshir&lt;br /&gt;
: (b4c8.1) &#039;&#039;Marduk&#039;&#039; engineering chief.&lt;br /&gt;
&lt;br /&gt;
; Avigael Kern&lt;br /&gt;
: (b4c4.3) A Kern instance that budded off the main group and asserted her own right to an independent existence. Helps Cato and Alis rescue the remainder of their crew.&lt;br /&gt;
&lt;br /&gt;
; Avrana Kern&lt;br /&gt;
: (b4c2.1) Pulls Alis out of a simulation on Imir.&lt;br /&gt;
&lt;br /&gt;
; Bartilow&lt;br /&gt;
: (b4c8.5) A Classisist of the &#039;&#039;Marduk&#039;&#039;. Witnesses the creation of a cult around Hartmand&#039;s invitation to his loyalists of Earth. Sees the first tendrils of invasive growth within the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Bianca&lt;br /&gt;
: (b4c2.1) A researcher collaborating with Alis, Leus, and Polonius.&lt;br /&gt;
&lt;br /&gt;
; Changing Thing&lt;br /&gt;
: (b4c11.3; a.k.a. Mira) A mysterious sometimes humanoid entity vulnerable only to fire that Neco brings Four Dragon Hold.&lt;br /&gt;
&lt;br /&gt;
; Cosimir&lt;br /&gt;
: (b4c6.2; a.k.a. &#039;&#039;&#039;Lamya Cosimir&#039;&#039;&#039;) Engineering Chief of the ark ship &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Domus &lt;br /&gt;
: (b4c1.1) Underseer AI for &#039;&#039;Pancreator&#039;&#039;. (b4c5.6) Killed, along with all non-biological digital systems, by a signal from Earth.&lt;br /&gt;
&lt;br /&gt;
; Gerey Hartmand&lt;br /&gt;
: (b4c1.1) Tyrannical leader of the terraforming project aboard the &#039;&#039;Pancreator&#039;&#039;. Resentful terraforming competitor to Avrana Kern.&lt;br /&gt;
&lt;br /&gt;
; Goscari&lt;br /&gt;
: (b4c6.2) Science Chief of the &#039;&#039;Nergal&#039;&#039;. A young-looking man with fluffy hair.&lt;br /&gt;
&lt;br /&gt;
; Hannoy&lt;br /&gt;
: (b4c6.3) A tall thin old woman of management whom Cosimir meets.&lt;br /&gt;
&lt;br /&gt;
; Hieron&lt;br /&gt;
: (b4c8.1) &#039;&#039;Marduk&#039;&#039; science chief.&lt;br /&gt;
&lt;br /&gt;
; Ken Pil&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand.&lt;br /&gt;
&lt;br /&gt;
; Kieraven&lt;br /&gt;
: (b4c8.4) A former Hoarder in childhood who lost his eyes during a raid. Had their Security aptitudes tested indirectly by undercover Project Management agents while still working in the crime ring. &lt;br /&gt;
&lt;br /&gt;
; Lamya Cosimir&lt;br /&gt;
: See &#039;&#039;&#039;Cosimir&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Leus&lt;br /&gt;
: (b4c2.1) A human researcher collaborating with Alis, Bianca, and Polonius.&lt;br /&gt;
&lt;br /&gt;
; Mira&lt;br /&gt;
: (b4c2.4) Alis&#039;s therapist. (b4c2.6) Awakens using Alis&#039;s personality after landing on Hartland. (b4c4.4) While still dazedly using Alis&#039;s personality, encounters and is shot by Neco Kasmar. (b4c9.5) A Nodan mind repository. (b4c11.3; a.k.a. Changing Thing) Is sent Neco to be their representative.&lt;br /&gt;
&lt;br /&gt;
; Neco Kasmar&lt;br /&gt;
: (b4c9.2) A Hartland native and resident of Four Dragon Ford. Witnesses Mira dissolve a pig from the inside.&lt;br /&gt;
&lt;br /&gt;
; Ottis Milner&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand. Likes meetings.&lt;br /&gt;
&lt;br /&gt;
; Palline&lt;br /&gt;
: (b4c6.2) A courier on the &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Peligrent&lt;br /&gt;
: (b4c6.2) Cosimir&#039;s second. A depressed-looking man.&lt;br /&gt;
&lt;br /&gt;
; Polonius&lt;br /&gt;
: (b4c2.1) A male spider researcher collaborating with Alis, Bianca, and Leus.&lt;br /&gt;
&lt;br /&gt;
; Redina Kott&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand. Skilled at hiding emotions. Enjoys watching coworker drama.&lt;br /&gt;
&lt;br /&gt;
; The Seven Hoarders&lt;br /&gt;
: (b4c8.4) Nepotistic oligarchs (?) of Earth during the Age of Arkships who inhibited meritocracy in favor of their own personal gain.&lt;br /&gt;
&lt;br /&gt;
; Sui Dorcheson&lt;br /&gt;
: (b4c1.1) Second Visionary of the &#039;&#039;Pancreator&#039;&#039;, alongside Gerey Hartmand. Judged lacking by Kott.&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; Earth&lt;br /&gt;
: (b4c1.1) Origin of Hartmand and the other Pancreators.&lt;br /&gt;
&lt;br /&gt;
; Four Dragon Ford&lt;br /&gt;
: (b4c9.2) A human settlement on Marduk amid continuous conflict with The Life.&lt;br /&gt;
&lt;br /&gt;
; Imir&lt;br /&gt;
: (b4c2.1) A world hosting a kilometer-scale machine that records people and creates simulated worlds for them to inhabit.&lt;br /&gt;
&lt;br /&gt;
; Hartland &lt;br /&gt;
: (b4c3.1) Name given by Hartmand to the planet he and the other Pancreators terraform.&lt;br /&gt;
&lt;br /&gt;
; Marduk (world)&lt;br /&gt;
: (b4c11.3) What the inhabitants of Four Dragon Ford call their world.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; conflation&lt;br /&gt;
: (b4c5.1) A process of mentally communing with the planet Hart.&lt;br /&gt;
&lt;br /&gt;
; Life, The&lt;br /&gt;
: (b4c11.3) The sapient interconnected flora and fauna of Marduk that is constantly inhibiting the expansion of human settlement.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Marduk&#039;&#039; (arkship)&lt;br /&gt;
: (b4c6.4) Arkship originally meant to be captained by Olumo but instead given to Kamya Cosimir, former Chief Engineer of the failed &#039;&#039;Nergal&#039;&#039;.  (b4c8.1) Arrives at Hartman&#039;s world.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Nergal&#039;&#039;&lt;br /&gt;
: (b4c6.2) An ark ship that Lamya Cosimir, Goscari, and Peligrent hoped to ride away from Earth. Crashed during an engine test.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Pancreator&#039;&#039;&lt;br /&gt;
: (b4c1) terraforming ship/station&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Pangu&#039;&#039;&lt;br /&gt;
: (b4c6.4) An early arkship from Earth that, like many of its generation, both encountered grave problems shortly after disembarking but managed to safely return to Earth orbit under the command of Captain Olumo, making him a hero.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Dissenter&#039;&#039;&lt;br /&gt;
: (b4c4.3) The squid-designed ship that fragmented into two sections, one of which Alis, Cato, and Avigael Kern inhabit. Cato nominally considers himself captain of this craft although Avigael is in direct control of all aspects.&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
; The First Age (The Age of Terraforming)&lt;br /&gt;
: The initial terraforming of the planet Hartland. Primary POV: &#039;&#039;Assistant Visionary&#039;&#039; Redina Kott.&lt;br /&gt;
&lt;br /&gt;
; The Second Age (The Age of Arkships)&lt;br /&gt;
: The &#039;&#039;Marduk&#039;&#039;’s journey from Earth to Hartland. Primary POV: &#039;&#039;Captain&#039;&#039; Lamya Cosimir.&lt;br /&gt;
&lt;br /&gt;
; The Third Age (The Age of Exploration)&lt;br /&gt;
: The exploration of Hartland by a misfit Portiid-Human-Stomatopod-Nodan-AI crew. Primary POV: Alis.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Children of Strife chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! §&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| Kott physically enters Hartland&#039;s quarters. Kott finds Hartland arguing with Dorcheson. Kott announces Pil is harming the terraforming project.&lt;br /&gt;
| Kott, Hartland, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Hartland gathers the rest of the crew. Kott privately criticizes Milner&#039;s insistence on holding meetings with artificial personality models of investors. A summary by Kott about how Hartmand stole a planet from Kern. How Hartmand&#039;s rapid terraforming project has repeatedly failed. Kott privately believes her data linking is responsible. How Kott believes Hartmand will murder one of his Visionaries and so Kott tattle-telling on Pil improves her survival chances. Hartland confronts Pil who says he has saved the project.&lt;br /&gt;
|  Kott, Hartland, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| Kott and Pil get high together. Kott notices Pil acting strangely. Kott clears her blood chemistry of mind-altering substances and notices the sixth terraforming failure is unlike the previous failures. Kott sees microbial fiefdoms rising and competing against others instead of global mass death. Pil says he applied Kott&#039;s own method to the terraforming microbes. Kott does not understand Pil but knows she must tell Hartland what Pil has done to avoid Pil implicating her.&lt;br /&gt;
| Kott, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Pil demonstrates he has given independence to the terraforming microbes which now are evolving uncontrollably. Instead of instant global failure, the planet&#039;s microbial life fights itself and the terraformer extermination tools to survive.&lt;br /&gt;
| Kott, Hartland, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Alis meets with her research companions but is confused by their findings. Avrana Kern speaks to her, beginning to disconnect Alis from a simulation.&lt;br /&gt;
| Alis, Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Alis protests disconnection, espousing delusions of grandeur. Alis notices her research companions are empty. Alis argues with Kern, not convinced that she has been taken out of the simulation completely. Kern says that Alis has been given up on for hundreds of years. Alis chases Kern through a large ark ship corridor, unable to catch up. Alis enters a cold sleep pod. Alis feels herself in plastic container, not unlike a metamorphosis cocoon of a butterfly and fights to break free.&lt;br /&gt;
| Alis (POV), Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.3&lt;br /&gt;
| Alis finds herself disoriented and drowning. A large scary shrimp-like creature approaches her which she slaps away. The creature brutally punches Alis, caving her chest in on the left side. Thanks to the trauma, Kern finally establishes subverbal contact with Alisʼs implants. Using a robotic spider, Kern supplies oxygenated blood to Alisʼs brain, bypassing her mortally wounded circulatory system. Alis asks Kern to let her die so she can sooner restart a fresh loop of the simulation. Kern informs Alis that she is no longer in a simulation.&lt;br /&gt;
| Alis (POV), Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.4&lt;br /&gt;
| Kern tells Alis that Alis did spend much longer than a human life time within a simulation machine attempting to discover its memories of its creators. Alis recounts that she and her colleagues eventually discovered that the machine learns people that dive into it and adjusts simulations sycophantically to appease the expectations of said divers. Kern affirms Alisʼs memory on this matter. Kern goes further and recounts that Alis emerged from the simulation mentally damaged, unable to see other people as real and thus injured many people. Kern shares that Alisʼs body was changed to filter pain. Kern says Alis has the ability to cope with traumatic experiences like having her chest caved in since, at her core, Alis does not feel what she experiences is reality. Kern says the water-filled ship they are on is filled with misanthropes like Alis. Alis learns the shrimp creature is a stomatopod named Cato. Kern tells Alis she isn&#039;t Avrana Kern. Alis, confused by the overwhelmingly inconsistent fact pattern checks out mentally.&lt;br /&gt;
| Alis (POV), Kern, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&lt;br /&gt;
| Kern says she is Kern, but not Avrana Kern. Alis learns from Kern that she has been kept in a therapeutic coma and maintained as cargo, ignored by the ship&#039;s crew. Cato signs to Alis an urgent message that a disaster has endangered half of the shipʼs crew which ventured out some time ago and is imperiled in the inner region of the local solar system. Kern explains that Cato does not wish to render aid to his crewmates alone and prematurely awakened Alis in order to help him.&lt;br /&gt;
| Alis (POV), Kern, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 2.6&lt;br /&gt;
| Fake Alis wakes disenters herself from the soil. She is in a dark forest at night with stars visible in the sky. She grapples with her incomplete memory and wonders where her fellow crewmates are. A growl frightens her from the dark.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3.2&lt;br /&gt;
| Kott observes the repeated failures of the terraforming team to produce any life on the planet that does not resemble bugs. Pilʼs change to the microbial life causes the evolution of trees occasionally, but for the most part it is a green mono culture of bugs, bugs, and more bugs. Terraformer Dorcheson attempts to eradicate all life in order to reset the project. Most bugs are killed off in a planetwide slaughter caused by degradation of their shells and joints. However, quickly the life reverts again back to bugs. Hartmand calls an all-hands meeting to point blame.&lt;br /&gt;
| Kott (POV), Pil, Hartmand, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 3.3&lt;br /&gt;
| Pill is tried by Hartmand and a jury of his peers of Dorchester, Kott, and Milner. Pil is sentenced to confined isolation in his cabin. Dorchester continues to attempt extermination but fails. Kott visits Pil, thinking that she may be able to use his creativity to secure her survival at the next outburst from Hartmand who continues to be frustrated that bugs persist in occupying the planet he is trying to terraform. Kott visits Pil and finds him at a workstation with seemingly complete access to the planetʼs data feeds going to the terraforming ship. Kott surprises Pil when she tells him he has created life on the planet; Pil seems to regain his mad erudite persona and composure when Kott goes further and says Pil has created a system on the planet. Pill shows that he has established a computer network using Kott&#039;s techniques to turn the planetʼs life into a computer. Pil explains that Dorcheson&#039;s extermination chemicals are simply an instruction that the planet&#039;s microbial life executes but not before the life creates new instructions for itself.  Pil injects Kott with a microbial agent that nullifies her integral nano machine defenses.&lt;br /&gt;
| Kott (POV), Pil, Hartmand, Dorchester, Milner&lt;br /&gt;
|-&lt;br /&gt;
| 3.4&lt;br /&gt;
| Pil medically transforms Kott into the god of the planet by hooking up her nervous system to the control system for evolving and shaping planetary flora and fauna. Kott relishes in the power that she has been given and creates almost Earth-like analogues of creatures that she knows of. Kott is then woken up in her human body to see the Pantheon surrounding her, including Pil. Kott sees herself as the goddess of this world.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 3.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| A brief history of stomatopod biology, physiology and culture. A discussion about their ability to one-Shot kill each other with their powerful punches. How Cato is uncertain whether Alis will be of help in the current crisis.&lt;br /&gt;
| Cato, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 4.2&lt;br /&gt;
| A summary of Cato&#039;s stomatopod cultural heritage and biological psychological biases. Cato needs Alisʼs assistance but is too proud to do so unless Alis submits humbly and deferentially; Cato feels no guilt at mortally wounding Alis when she woke up confusedly flailing at him. An explanation that the rest of the crew went exploring signs of human artifacts in the nearby solar system and then broadcast a distress signal. Kern recommends Alis print herself a space suit. Alis continues to fear Cato but has translation equipment online to understand his visual signing.&lt;br /&gt;
| Cato, Alis, Kern&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| Kern explains to Alis that she herself is a Kern instance that decided to exist independently after experiencing some significant events. Kern tells Alis to call her Avigael Kern to differentiate herself from the wider interstellar Avrana Kern mind. Avigael tells Alis that Cato is an old fighter who has been engaged in a conflict of his own making which has now involved Alis and others of the &#039;&#039;Dissenter&#039;&#039;. Cato and Alis see the absurd sight that lured the rest of the crew to explore. Avigael detects a survivor&#039;s signal.&lt;br /&gt;
| Kern, Alis, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 4.4&lt;br /&gt;
| A fake Alis with missing memories crawls from a crash site. She vomits out blood and bones. Fake Alis encounters a woman smaller than herself. The horrified woman shoots Fake Alis cleanly through the chest. Fake Alis recovers to her own surprise. The horrified woman flees. Fake Alis is confused by her memories of being in the simulation. Fake Alis decides to pursue the woman.&lt;br /&gt;
| Mira (POV), Neco&lt;br /&gt;
|-&lt;br /&gt;
| 5.1&lt;br /&gt;
| Kott yearns to be plugged back into the planet again having been disconnected forcibly after a month-long induced coma. Hartmand and company begin manually terraforming the planet via a process Pil calls &#039;&#039;Conflation&#039;&#039;. They remove the bugs. After some time though, the bugs returned in earnest, evolving to overtake the more pleasing tetrapod endoskeletal life that Hartman wished for. Kott receives permission to Conflate with the planet again and does so in limited capacity under intense scrutiny. Kott inhibits bug evolution and promotes endoskeletal evolutionary pathways. However, life on the planet seems to be hard-coded to favor the recurring evolution of bugs again and again. Events on Earth begin to take their attention.&lt;br /&gt;
| Kott (POV), Pil, Hartmand&lt;br /&gt;
|-&lt;br /&gt;
| 5.2&lt;br /&gt;
| Events on Earth accelerate. Hartmand and company receive word that war has taken over an entire continent. Various of their colleagues are killed. Hartmand regrets not being present to exploit the chaos with his own supporters. Hartmand expects to receive word of evacuees of his own loyalists departing Earth to migrate to Hartland. Kott notes that Hartmand has not been keeping Earth abreast of Hartland&#039;s developments. Kott decides to murder Hartmand and Dorcheson for their glee at the news of political instability on Earth.&lt;br /&gt;
| Kott (POV), Hartmand, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 5.3&lt;br /&gt;
| Kott schemes against Hartmand and the other pancreators. Kott plans to secretly give the bugs an evolutionary advantage and then pin the blame on Pil.  Kott, Hartmand, and the other crew take turns undoing each otherʼs Conflation work. Hartmand insists on sculpting predators; Milner sculpts herbivorous prey.&lt;br /&gt;
| Kott (POV), Hartmand, Pil, Dorcheson, Milner&lt;br /&gt;
|-&lt;br /&gt;
| 5.4&lt;br /&gt;
| Kott emerges from conflation.  Kott realizes that she and the other pancreators have finally created something of value for the first time.  Kott recognizes they were parasites on Earth, extracting value for profit.  The pancreators mock and scoff at fall of Earth as they receive word that various technological disasters are making the planet uninhabitable.  Hartmand and Dorcheson joke that someone should have done something to prevent disaster.  Kott prints a knife but cannot push herself to slit her wrists to kill herself.&lt;br /&gt;
| Kott (POV), Hartmand, Pil, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 5.5&lt;br /&gt;
| Hartmand cheers on the collapse of Earth for the power vacuum that he and his supporters will one day be able to fill.  Kott grapples with her nascent empathy.  Hartmand continues to vovaliize faith that his followers from Earth will soon arrive.  Kott dives into conflation.  She is unexpectedly secretly joined by Pil.  Pil proposes he and Kott mutiny against the others.&lt;br /&gt;
| Kott (POV), Pil, Hartmand&lt;br /&gt;
|-&lt;br /&gt;
| 5.6&lt;br /&gt;
| The pancreators watch the final throes of advanced human civilization in Earth&#039;s solar system. A final broadcast is received that disables Domus and cuts power to the ship.&lt;br /&gt;
| Kott (POV), Hartmand, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 6.1&lt;br /&gt;
| A very brief summary of inevitably uninhabitable conditions on Earth following its technological collapse.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.2&lt;br /&gt;
| Cosimir, Goscari, and Peligrent witness the fall and destruction of their ark ship &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
| Cosimir (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 6.3&lt;br /&gt;
| Hannoy approaches Cosimir at mealtime to tell her she has the aptitude to be a captain. Cosimir reflects that to be captain material is to be a ruthless bastard willing to dispose of human lives if survival requires. Cosimir tells Hannoy as much and is invited by Project Management to meet.&lt;br /&gt;
| Cosimir (POV), Hannoy&lt;br /&gt;
|-&lt;br /&gt;
| 6.4&lt;br /&gt;
| Hannoy introduces Cosimir to Captain Olumo.  Cosimir recalls his history as captain of the &#039;&#039;Pangu&#039;&#039;, one of the early failed ark ships that managed to return to Earth safely.  Hannoy plays a translation of an audio recording of Hartmand to Cosimir; Hartmand invites his followers to settle his planet if they are deprived.  Olumo confesses he cannot serve as Captain due to radiation exposure he suffered while aboard the &#039;&#039;Pangu&#039;&#039;.&lt;br /&gt;
| Cosimir (POV), Hannoy, Olumo&lt;br /&gt;
|-&lt;br /&gt;
| 6.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7.2&lt;br /&gt;
| Cato, Alis, and Avigael find the corpse of spider. Helena. Cato saves Avigael from being captured in a plant trip.&lt;br /&gt;
| Alis (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 7.3&lt;br /&gt;
| Cato, Avigael, and Alis breach and board the derelict Arcship. They find cargo pods full of corpses. Alis recalls the failed arkship of Imir.&lt;br /&gt;
| Cato, Alis, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 7.4&lt;br /&gt;
| Alis retrieves a Kern robot. Excavation. Cato finds evidence a survivor recently escaped the ark. Avigael suspects Mira.&lt;br /&gt;
| Cato, Alis, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 8.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 8.2&lt;br /&gt;
| Cosimir orders the immediate settling of the planet below them.&lt;br /&gt;
| Cosimir&lt;br /&gt;
|-&lt;br /&gt;
| 8.3&lt;br /&gt;
| Hieron leads a team to explore the kernel from which the orbital elevator plant is growing. Hieron find four corpses of the ancients. She brings back samples to the &#039;&#039;Marduk&#039;&#039;. A sample awakens and grows.&lt;br /&gt;
| Hieron (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 8.4&lt;br /&gt;
| Kieraven leads a landing party. Fennec (?) takes an experimental breath. Kieraven and company gun down a mega fauna they agitated.&lt;br /&gt;
| Kieraven (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 8.5&lt;br /&gt;
| Cosimir broadcasts Heartland&#039;s habitability. Bartilow witnesses the birth of a cult around Hartmandʼs recording. Bartilow sees invasive flora aboard the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
| Cosimir (POV), Bartilow (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.1&lt;br /&gt;
| Mira remembers her artisanal primary identity while being injured by a beast of Hartland. Mira forces the beast to swallow her body whole.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.2&lt;br /&gt;
| Neco witnesses Mira dissolve a pig after being vored. Flees to Four Dragon Ford.&lt;br /&gt;
| Neco Kasmar (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.3&lt;br /&gt;
| How Portiafabian came to be.&lt;br /&gt;
| Portia (POV), Fabian, Avigael &lt;br /&gt;
|-&lt;br /&gt;
| 9.4&lt;br /&gt;
| Mira follows Neco to Four Dragon Ford. Mira recalls Arkship languages and hails the fortress settlement. Mira hungers for the experiences of its inhabitants.&lt;br /&gt;
| Mira (POV), Neco&lt;br /&gt;
|-&lt;br /&gt;
| 9.5&lt;br /&gt;
| Avigael recounts to Alis that Mira is a Nodan entity who must be retrieved for the planet&#039;s sake.&lt;br /&gt;
| Alis (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.6&lt;br /&gt;
| Mira continues to plead for the fortress inhabitants to listen to her but is only continuously shot. The gates open for melee forces to defend upon her.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.7&lt;br /&gt;
| Avigael describes how the trauma of escaping the derelict arkship and landing on a hostile planet may cause Mira to go feral. Under enough damage, Mira may be lost.&lt;br /&gt;
| Alis (POV), Avigael, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 9.8&lt;br /&gt;
| Fortress forces continue butcher Mira. Mira finally retaliates, absorbing her attackers. Udin orders flamethrowers to be deployed which ultimately drive Mira back into the forest.&lt;br /&gt;
| Neco (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.9&lt;br /&gt;
| Mira fights to maintain individuality and consciousness. Mira is driven away by fire. Mira flees into the woods where flora and fauna continuously reject and attack her.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 10.1&lt;br /&gt;
| The visionaries fight for survival and thenselves aboard their derelict dead ship.&lt;br /&gt;
| Hartmand, Pil, Kott (POV), Milner, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 10.2&lt;br /&gt;
| Kott wanders the &#039;&#039;Pancreator&#039;&#039;. She sees a glow. Pil shows Kott the biological Conflation interface with the planet is still operational despite the loss of Domus. Pil invites Kott to resume influencing the terraforming activities.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 10.3&lt;br /&gt;
| Kott and Pil work to restore systems of the pen creator despite the dwindling cognitive resources available to the diminishing biodiversity available within the planets below. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10.4&lt;br /&gt;
| Caught explains to Hartmand, Dorchester, and Milner how she restores power with biological systems. Dorchester demands that the pen crate should be purged of all biological growth. Pill promises to restore communications with Earth thus appealing to Hartmand who gives his blessing to the plan.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10.5&lt;br /&gt;
| The remaining Pantheon stabilizes the &#039;&#039;Pancreator&#039;&#039;.&lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 10.6&lt;br /&gt;
| Caught and pill argue. Pill commit suicide. Caught finds pill&#039;s body overgrown with fungal, growths and Flora.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.1&lt;br /&gt;
| A summary of stomatopod evolution and history.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.2&lt;br /&gt;
| Cato suits up to deploy to the surface with Kern and Alis. Portiafabian also desire to join the expedition against Avigael&#039;s advice but Cato permits. Avigael pushes back against Cato&#039;s militant attitude so Cato agrees to being deterrents in addition to lethal weaponry.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.3&lt;br /&gt;
| Command appoints Neco to be ambassador to the Changing Thing. Neco is escorted by the Life to speak to Changing Thing. Neco converses with Changing Thing which laments that Mira is holding itself back from becoming the world. Changing Thing, against Mira&#039;s protestation, consumes Neck in search of understanding.&lt;br /&gt;
| Neco (POV), Mira, Ellan, Mezclo, Udin&lt;br /&gt;
|-&lt;br /&gt;
| 11.4&lt;br /&gt;
| Portiafabian grapple with their their mixed mind. Cato pilots the drop ship containing Abigail himself, Alice and Portiafabian to the planet surface. Winged creatures rise up from the canopy below and attack the medusoid dropship.&lt;br /&gt;
| Portiafabian (POV), Cato, Alis, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 11.5&lt;br /&gt;
| Cato engages in close combat pterosaurs attacking the dropship. Cato dispatches hostile pterosaurs and drops to the planet surface satisfied.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.6&lt;br /&gt;
| Neco Converses with Mira in a virtual world of peaceful green.&lt;br /&gt;
| Neco (POV), Mira&lt;br /&gt;
|-&lt;br /&gt;
| 12.1&lt;br /&gt;
| Caught iscon&#039;s pills corpse in a far corner of the pen Creator. Caught claims credit for pills, polarized light controls system and chairs. The management role of the planets with the other remaining three pen creators. All continues for some time until it ends.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.2&lt;br /&gt;
| Caught dreams about colonists from Earth, arriving and destroying heartland.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.3&lt;br /&gt;
| Caught and the other pen creators continue to shape the world. Their physical and mental health declines. Milner tells caught that something great has happened.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.4&lt;br /&gt;
| Milner discovers The life has established itself in the vacuum of space spreading fronds and flowers outside of the pen creators hull. Cut internally. Despairs at the prospect that the life within the pen curator will go on perpetually.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.5&lt;br /&gt;
| The remaining pen creators hold in all hands. Dorchester proposes constructing a new station. Parks bend proposes descending down to the planet to live in their creation.  Milner has no proposal and research his confidence that the life will provide. Caught offers, no suggestion and simply laughs. &lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 12.6&lt;br /&gt;
| Caught investigates yet another infestation of bugs. Caught witnesses. Ken pill speaks to kott through a body composed of bugs.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.1&lt;br /&gt;
| Hiring pleads to customer for time to research further into the organism on the planet. Engineering reports to cosmere that the plant has infected the ship. Tendrils eat away at the superstructure of the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
| Hieron pov&lt;br /&gt;
|-&lt;br /&gt;
| 13.2&lt;br /&gt;
| Summary of how the beanstalk infected the Marduk. The life becomes aware of the invader.&lt;br /&gt;
| The Life (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 13.3&lt;br /&gt;
| The old fated final battle for the Marduk. Over the course of 48 hours, the life invades and conquers the Marduk adopting an increasingly intelligent strategy of evacuating compartments. Cosmere orders and immediate evacuation of the Marduk to the planet&#039;s surface. &lt;br /&gt;
| Cosimir (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 13.4&lt;br /&gt;
| Kieraven leads evacuation of cargo onto shuttles. Ilshir abandons duty to attempt rescuing Hieron. Bartelow convinces Cosimir to evacuate. Hieron witnesses a body made of plants appear within her doomed lab. Hieron dies.&lt;br /&gt;
| Kieraven (POV), Cosimir (POV), Hieron (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 13.5&lt;br /&gt;
| Kieraven makes camp. Kieraven is pleased to hear Cosimir is in the next and last shuttle. Night falls. Kieraven sees a dragon-human chimera watch the colonists in the rain.&lt;br /&gt;
| Kieraven (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 13.6&lt;br /&gt;
| Cosimir and Kieraven establish a colony. Kieraven plans to establish a second settlement. Enelisse Jesper, former subordinate of Goscari of the &#039;&#039;Nergal&#039;&#039;, reports to Cosimir.&lt;br /&gt;
| Kieraven, Cosimir (POV), Enelisse Jesper&lt;br /&gt;
|-&lt;br /&gt;
| 14.1&lt;br /&gt;
| Alis, Portifabian, and Cato take stock around the downed ship.  The shipʼs Avigael Kern instance is dead.  They consult with the orbital ship Avigael.  Cato fires an explosive warning shot at armed humans that approached, injuring Alis.&lt;br /&gt;
| Alis, Portifabian, Cato, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 14.2&lt;br /&gt;
| Ellan convenes with other leaders to review intelligence of the new party of invaders (Cato, Alis, Portiafabian).  Ellan in Four Dragon Ford parleys at a distance with Alis who worryingly resembles the Changing Thing.  Alis mentions Earth.  Ellan strongly warns the intruders to go away.&lt;br /&gt;
| Ellan (POV), Udin, Mezclo, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 14.3&lt;br /&gt;
| Alis and company walk to meet Mira, followed by local humans whom Alis warns to keep their distance. Alis talks to the gelatinous biome that is Mira. Mira says the world is eating her and so she must eat it back in turn. Alis offers assistance; Mira requests Alis enter her to stabilize her memories. Mira pulls in Alis into herself.&lt;br /&gt;
| Alis (POV), Avigael, Cato, Portiafabian, Mira&lt;br /&gt;
|-&lt;br /&gt;
| 14.4&lt;br /&gt;
| Cato retreats from an explosive expansion of Mira following its ingestion of Alis.  Avigael translates Cato&#039;s desire for the local humans to assist him. Cato, Portiafabian, and the humans travel back to the fortress.&lt;br /&gt;
| Cato (POV), Avigael, Portiafabian&lt;br /&gt;
|-&lt;br /&gt;
| 14.5&lt;br /&gt;
| Avigael demands to know the history of the world and why it, one of her worlds, turned so hostile. Mezclo recounts a summary; Avigael&#039;s haughty dialogue offends the humans. A Neco puppet interrupts the discussion. A beast agent of The Life arrives and destroys the Neco puppet with bites, claws, and acid. The beast proclaims in Classicist language that the people must destroy such things with fire or acid or suffer punishment. Avigael irritatedly recognizes the face of the beast as that of Gerey Hartmand.&lt;br /&gt;
| Ellan (POV), Mezclo, Udin, Neco, Mira, Portiafabian, Avigael, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 15.1&lt;br /&gt;
| Kott finds evidence of Pil&#039;s mind imprinted in insect infestations that occur repeatedly across the planet. Kott confesses she misses him. Pil invites Kott to join him.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 15.2&lt;br /&gt;
| Kott contemplates transferring her mind into the plantary ecosystem-based connectome as Pil inadvertently did.&lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 15.3&lt;br /&gt;
| Kott calls a final meeting. Kott dies when the Life finally breaches their last habitable section of the &#039;&#039;Pancreator&#039;&#039; while Conflating.&lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 15.4&lt;br /&gt;
| Kott awakens in the bodies of her favorite feline predator. Kott discovers, after being repeatedly predated by sabertoothed beasts, that Hartmand persists as she did. Kott discovers Hartmand, Dorcheson, and Milner all secretly counted on immortality within the planet&#039;s biomass and did not intend to save one another. Dorcheson inhabits wild swine. Milner inhabits rodents. Hartmand inhabits apex beasts. Kott screams in horror across all her bodies that she cannot die.&lt;br /&gt;
| Kott (POV), Hartmand, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 15.5&lt;br /&gt;
| Kott spends countless time predating Pil and Milner. Pil unexpectedly warns Kott of changes coming. Kott hears the first shuttles descending from the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 15.6&lt;br /&gt;
| Gerey Hartmand calls a meeting to discuss the arrival of the &#039;&#039;Marduk&#039;&#039;. Hartmand says the people should be driven to the planet to worship him. Dorcheson says the invaders must be exterminated.&lt;br /&gt;
| Kott (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 16.1&lt;br /&gt;
| Alis parleys with Mira and Neco. Neco explains the lore of the Life and its brutal desire for entertainment and worship. Mira asks Alis to find a way for the world to leave her alone so she can regain control and become fully Mira again.&lt;br /&gt;
| Alis (POV), Mira, Neco&lt;br /&gt;
|-&lt;br /&gt;
| 16.2&lt;br /&gt;
| Avigael recalls Hartmand was a terraformer she disliked and wouldn&#039;t put past engineering a world with life that facilitates the creation of monsters. Avigael and Portiafabian conclude that Mira&#039;s Nodan nature found the artificially engineered Life a highly vulnerable information processing platform, thus explaining her massive growth.&lt;br /&gt;
| Portiafabian, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 16.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Children_of_Strife&amp;diff=198232</id>
		<title>Children of Strife</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Children_of_Strife&amp;diff=198232"/>
		<updated>2026-09-16T09:36:02Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Children of Strife&#039;&#039;&#039; is a [[2026]] [[science fiction]] novel by [[Adrian Tchaikovsky]] that is the third sequel to &#039;&#039;[[Children of Time]]&#039;&#039;. It is preceded by &#039;&#039;[[Children of Memory]]&#039;&#039;.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Prev: &#039;&#039;[[Children of Memory]]&#039;&#039;&lt;br /&gt;
* Author: [[Adrian Tchaikovsky]]&lt;br /&gt;
* Publication date: [[2026-03-17]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
; Alis&lt;br /&gt;
: (b4c2.1) A researcher collaborating with Bianca, Leus, and Polonius. Is pulled out of a simulation on Imir by Avrana Kern due to cognitive errors.&lt;br /&gt;
&lt;br /&gt;
; Anbar Ilshir&lt;br /&gt;
: (b4c8.1) &#039;&#039;Marduk&#039;&#039; engineering chief.&lt;br /&gt;
&lt;br /&gt;
; Avigael Kern&lt;br /&gt;
: (b4c4.3) A Kern instance that budded off the main group and asserted her own right to an independent existence. Helps Cato and Alis rescue the remainder of their crew.&lt;br /&gt;
&lt;br /&gt;
; Avrana Kern&lt;br /&gt;
: (b4c2.1) Pulls Alis out of a simulation on Imir.&lt;br /&gt;
&lt;br /&gt;
; Bartilow&lt;br /&gt;
: (b4c8.5) A Classisist of the &#039;&#039;Marduk&#039;&#039;. Witnesses the creation of a cult around Hartmand&#039;s invitation to his loyalists of Earth. Sees the first tendrils of invasive growth within the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Bianca&lt;br /&gt;
: (b4c2.1) A researcher collaborating with Alis, Leus, and Polonius.&lt;br /&gt;
&lt;br /&gt;
; Cosimir&lt;br /&gt;
: (b4c6.2; a.k.a. &#039;&#039;&#039;Lamya Cosimir&#039;&#039;&#039;) Engineering Chief of the ark ship &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Domus &lt;br /&gt;
: (b4c1.1) Underseer AI for &#039;&#039;Pancreator&#039;&#039;. (b4c5.6) Killed, along with all non-biological digital systems, by a signal from Earth.&lt;br /&gt;
&lt;br /&gt;
; Gerey Hartmand&lt;br /&gt;
: (b4c1.1) Tyrannical leader of the terraforming project aboard the &#039;&#039;Pancreator&#039;&#039;. Resentful terraforming competitor to Avrana Kern.&lt;br /&gt;
&lt;br /&gt;
; Goscari&lt;br /&gt;
: (b4c6.2) Science Chief of the &#039;&#039;Nergal&#039;&#039;. A young-looking man with fluffy hair.&lt;br /&gt;
&lt;br /&gt;
; Hannoy&lt;br /&gt;
: (b4c6.3) A tall thin old woman of management whom Cosimir meets.&lt;br /&gt;
&lt;br /&gt;
; Hieron&lt;br /&gt;
: (b4c8.1) &#039;&#039;Marduk&#039;&#039; science chief.&lt;br /&gt;
&lt;br /&gt;
; Ken Pil&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand.&lt;br /&gt;
&lt;br /&gt;
; Kieraven&lt;br /&gt;
: (b4c8.4) A former Hoarder in childhood who lost his eyes during a raid. Had their Security aptitudes tested indirectly by undercover Project Management agents while still working in the crime ring. &lt;br /&gt;
&lt;br /&gt;
; Lamya Cosimir&lt;br /&gt;
: See &#039;&#039;&#039;Cosimir&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Leus&lt;br /&gt;
: (b4c2.1) A human researcher collaborating with Alis, Bianca, and Polonius.&lt;br /&gt;
&lt;br /&gt;
; Mira&lt;br /&gt;
: (b4c2.4) Alis&#039;s therapist. (b4c2.6) Awakens using Alis&#039;s personality after landing on Hartland. (b4c4.4) While still dazedly using Alis&#039;s personality, encounters and is shot by Neco Kasmar. (b4c9.5) A Nodan mind repository.&lt;br /&gt;
&lt;br /&gt;
; Neco Kasmar&lt;br /&gt;
: (b4c9.2) A Hartland native and resident of Four Dragon Ford. Witnesses Mira dissolve a pig from the inside.&lt;br /&gt;
&lt;br /&gt;
; Ottis Milner&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand. Likes meetings.&lt;br /&gt;
&lt;br /&gt;
; Palline&lt;br /&gt;
: (b4c6.2) A courier on the &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Peligrent&lt;br /&gt;
: (b4c6.2) Cosimir&#039;s second. A depressed-looking man.&lt;br /&gt;
&lt;br /&gt;
; Polonius&lt;br /&gt;
: (b4c2.1) A male spider researcher collaborating with Alis, Bianca, and Leus.&lt;br /&gt;
&lt;br /&gt;
; Redina Kott&lt;br /&gt;
: (b4c1.1) Assistant to Hartmand. Skilled at hiding emotions. Enjoys watching coworker drama.&lt;br /&gt;
&lt;br /&gt;
; The Seven Hoarders&lt;br /&gt;
: (b4c8.4) Nepotistic oligarchs (?) of Earth during the Age of Arkships who inhibited meritocracy in favor of their own personal gain.&lt;br /&gt;
&lt;br /&gt;
; Sui Dorcheson&lt;br /&gt;
: (b4c1.1) Second Visionary of the &#039;&#039;Pancreator&#039;&#039;, alongside Gerey Hartmand. Judged lacking by Kott.&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; Imir&lt;br /&gt;
: (b4c2.1) A world hosting a kilometer-scale machine that records people and creates simulated worlds for them to inhabit.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; conflation&lt;br /&gt;
: (b4c5.1) A process of mentally communing with the planet Hart.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Marduk&#039;&#039;&lt;br /&gt;
: (b4c6.4) Arkship originally meant to be captained by Olumo but instead given to Kamya Cosimir, former Chief Engineer of the failed &#039;&#039;Nergal&#039;&#039;.  (b4c8.1) Arrives at Hartman&#039;s world.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Nergal&#039;&#039;&lt;br /&gt;
: (b4c6.2) An ark ship that Lamya Cosimir, Goscari, and Peligrent hoped to ride away from Earth. Crashed during an engine test.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Pancreator&#039;&#039;&lt;br /&gt;
: (b4c1) terraforming ship/station&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Pangu&#039;&#039;&lt;br /&gt;
: (b4c6.4) An early arkship from Earth that, like many of its generation, both encountered grave problems shortly after disembarking but managed to safely return to Earth orbit under the command of Captain Olumo, making him a hero.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Dissenter&#039;&#039;&lt;br /&gt;
: (b4c4.3) The squid-designed ship that fragmented into two sections, one of which Alis, Cato, and Avigael Kern inhabit. Cato nominally considers himself captain of this craft although Avigael is in direct control of all aspects.&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
; The First Age (The Age of Terraforming)&lt;br /&gt;
: The initial terraforming of the planet Hartland. Primary POV: &#039;&#039;Assistant Visionary&#039;&#039; Redina Kott.&lt;br /&gt;
&lt;br /&gt;
; The Second Age (The Age of Arkships)&lt;br /&gt;
: The &#039;&#039;Marduk&#039;&#039;’s journey from Earth to Hartland. Primary POV: &#039;&#039;Captain&#039;&#039; Lamya Cosimir.&lt;br /&gt;
&lt;br /&gt;
; The Third Age (The Age of Exploration)&lt;br /&gt;
: The exploration of Hartland by a misfit Portiid-Human-Stomatopod-Nodan-AI crew. Primary POV: Alis.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Children of Strife chapter summaries&lt;br /&gt;
|-&lt;br /&gt;
! §&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| 1.1&lt;br /&gt;
| Kott physically enters Hartland&#039;s quarters. Kott finds Hartland arguing with Dorcheson. Kott announces Pil is harming the terraforming project.&lt;br /&gt;
| Kott, Hartland, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 1.2&lt;br /&gt;
| Hartland gathers the rest of the crew. Kott privately criticizes Milner&#039;s insistence on holding meetings with artificial personality models of investors. A summary by Kott about how Hartmand stole a planet from Kern. How Hartmand&#039;s rapid terraforming project has repeatedly failed. Kott privately believes her data linking is responsible. How Kott believes Hartmand will murder one of his Visionaries and so Kott tattle-telling on Pil improves her survival chances. Hartland confronts Pil who says he has saved the project.&lt;br /&gt;
|  Kott, Hartland, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 1.3&lt;br /&gt;
| Kott and Pil get high together. Kott notices Pil acting strangely. Kott clears her blood chemistry of mind-altering substances and notices the sixth terraforming failure is unlike the previous failures. Kott sees microbial fiefdoms rising and competing against others instead of global mass death. Pil says he applied Kott&#039;s own method to the terraforming microbes. Kott does not understand Pil but knows she must tell Hartland what Pil has done to avoid Pil implicating her.&lt;br /&gt;
| Kott, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 1.4&lt;br /&gt;
| Pil demonstrates he has given independence to the terraforming microbes which now are evolving uncontrollably. Instead of instant global failure, the planet&#039;s microbial life fights itself and the terraformer extermination tools to survive.&lt;br /&gt;
| Kott, Hartland, Dorcheson, Milner, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 2.1&lt;br /&gt;
| Alis meets with her research companions but is confused by their findings. Avrana Kern speaks to her, beginning to disconnect Alis from a simulation.&lt;br /&gt;
| Alis, Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.2&lt;br /&gt;
| Alis protests disconnection, espousing delusions of grandeur. Alis notices her research companions are empty. Alis argues with Kern, not convinced that she has been taken out of the simulation completely. Kern says that Alis has been given up on for hundreds of years. Alis chases Kern through a large ark ship corridor, unable to catch up. Alis enters a cold sleep pod. Alis feels herself in plastic container, not unlike a metamorphosis cocoon of a butterfly and fights to break free.&lt;br /&gt;
| Alis (POV), Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.3&lt;br /&gt;
| Alis finds herself disoriented and drowning. A large scary shrimp-like creature approaches her which she slaps away. The creature brutally punches Alis, caving her chest in on the left side. Thanks to the trauma, Kern finally establishes subverbal contact with Alisʼs implants. Using a robotic spider, Kern supplies oxygenated blood to Alisʼs brain, bypassing her mortally wounded circulatory system. Alis asks Kern to let her die so she can sooner restart a fresh loop of the simulation. Kern informs Alis that she is no longer in a simulation.&lt;br /&gt;
| Alis (POV), Kern&lt;br /&gt;
|-&lt;br /&gt;
| 2.4&lt;br /&gt;
| Kern tells Alis that Alis did spend much longer than a human life time within a simulation machine attempting to discover its memories of its creators. Alis recounts that she and her colleagues eventually discovered that the machine learns people that dive into it and adjusts simulations sycophantically to appease the expectations of said divers. Kern affirms Alisʼs memory on this matter. Kern goes further and recounts that Alis emerged from the simulation mentally damaged, unable to see other people as real and thus injured many people. Kern shares that Alisʼs body was changed to filter pain. Kern says Alis has the ability to cope with traumatic experiences like having her chest caved in since, at her core, Alis does not feel what she experiences is reality. Kern says the water-filled ship they are on is filled with misanthropes like Alis. Alis learns the shrimp creature is a stomatopod named Cato. Kern tells Alis she isn&#039;t Avrana Kern. Alis, confused by the overwhelmingly inconsistent fact pattern checks out mentally.&lt;br /&gt;
| Alis (POV), Kern, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&lt;br /&gt;
| Kern says she is Kern, but not Avrana Kern. Alis learns from Kern that she has been kept in a therapeutic coma and maintained as cargo, ignored by the ship&#039;s crew. Cato signs to Alis an urgent message that a disaster has endangered half of the shipʼs crew which ventured out some time ago and is imperiled in the inner region of the local solar system. Kern explains that Cato does not wish to render aid to his crewmates alone and prematurely awakened Alis in order to help him.&lt;br /&gt;
| Alis (POV), Kern, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 2.6&lt;br /&gt;
| Fake Alis wakes disenters herself from the soil. She is in a dark forest at night with stars visible in the sky. She grapples with her incomplete memory and wonders where her fellow crewmates are. A growl frightens her from the dark.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 3.2&lt;br /&gt;
| Kott observes the repeated failures of the terraforming team to produce any life on the planet that does not resemble bugs. Pilʼs change to the microbial life causes the evolution of trees occasionally, but for the most part it is a green mono culture of bugs, bugs, and more bugs. Terraformer Dorcheson attempts to eradicate all life in order to reset the project. Most bugs are killed off in a planetwide slaughter caused by degradation of their shells and joints. However, quickly the life reverts again back to bugs. Hartmand calls an all-hands meeting to point blame.&lt;br /&gt;
| Kott (POV), Pil, Hartmand, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 3.3&lt;br /&gt;
| Pill is tried by Hartmand and a jury of his peers of Dorchester, Kott, and Milner. Pil is sentenced to confined isolation in his cabin. Dorchester continues to attempt extermination but fails. Kott visits Pil, thinking that she may be able to use his creativity to secure her survival at the next outburst from Hartmand who continues to be frustrated that bugs persist in occupying the planet he is trying to terraform. Kott visits Pil and finds him at a workstation with seemingly complete access to the planetʼs data feeds going to the terraforming ship. Kott surprises Pil when she tells him he has created life on the planet; Pil seems to regain his mad erudite persona and composure when Kott goes further and says Pil has created a system on the planet. Pill shows that he has established a computer network using Kott&#039;s techniques to turn the planetʼs life into a computer. Pil explains that Dorcheson&#039;s extermination chemicals are simply an instruction that the planet&#039;s microbial life executes but not before the life creates new instructions for itself.  Pil injects Kott with a microbial agent that nullifies her integral nano machine defenses.&lt;br /&gt;
| Kott (POV), Pil, Hartmand, Dorchester, Milner&lt;br /&gt;
|-&lt;br /&gt;
| 3.4&lt;br /&gt;
| Pil medically transforms Kott into the god of the planet by hooking up her nervous system to the control system for evolving and shaping planetary flora and fauna. Kott relishes in the power that she has been given and creates almost Earth-like analogues of creatures that she knows of. Kott is then woken up in her human body to see the Pantheon surrounding her, including Pil. Kott sees herself as the goddess of this world.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 3.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 4.1&lt;br /&gt;
| A brief history of stomatopod biology, physiology and culture. A discussion about their ability to one-Shot kill each other with their powerful punches. How Cato is uncertain whether Alis will be of help in the current crisis.&lt;br /&gt;
| Cato, Alis&lt;br /&gt;
|-&lt;br /&gt;
| 4.2&lt;br /&gt;
| A summary of Cato&#039;s stomatopod cultural heritage and biological psychological biases. Cato needs Alisʼs assistance but is too proud to do so unless Alis submits humbly and deferentially; Cato feels no guilt at mortally wounding Alis when she woke up confusedly flailing at him. An explanation that the rest of the crew went exploring signs of human artifacts in the nearby solar system and then broadcast a distress signal. Kern recommends Alis print herself a space suit. Alis continues to fear Cato but has translation equipment online to understand his visual signing.&lt;br /&gt;
| Cato, Alis, Kern&lt;br /&gt;
|-&lt;br /&gt;
| 4.3&lt;br /&gt;
| Kern explains to Alis that she herself is a Kern instance that decided to exist independently after experiencing some significant events. Kern tells Alis to call her Avigael Kern to differentiate herself from the wider interstellar Avrana Kern mind. Avigael tells Alis that Cato is an old fighter who has been engaged in a conflict of his own making which has now involved Alis and others of the &#039;&#039;Dissenter&#039;&#039;. Cato and Alis see the absurd sight that lured the rest of the crew to explore. Avigael detects a survivor&#039;s signal.&lt;br /&gt;
| Kern, Alis, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 4.4&lt;br /&gt;
| A fake Alis with missing memories crawls from a crash site. She vomits out blood and bones. Fake Alis encounters a woman smaller than herself. The horrified woman shoots Fake Alis cleanly through the chest. Fake Alis recovers to her own surprise. The horrified woman flees. Fake Alis is confused by her memories of being in the simulation. Fake Alis decides to pursue the woman.&lt;br /&gt;
| Mira (POV), Neco&lt;br /&gt;
|-&lt;br /&gt;
| 5.1&lt;br /&gt;
| Kott yearns to be plugged back into the planet again having been disconnected forcibly after a month-long induced coma. Hartmand and company begin manually terraforming the planet via a process Pil calls &#039;&#039;Conflation&#039;&#039;. They remove the bugs. After some time though, the bugs returned in earnest, evolving to overtake the more pleasing tetrapod endoskeletal life that Hartman wished for. Kott receives permission to Conflate with the planet again and does so in limited capacity under intense scrutiny. Kott inhibits bug evolution and promotes endoskeletal evolutionary pathways. However, life on the planet seems to be hard-coded to favor the recurring evolution of bugs again and again. Events on Earth begin to take their attention.&lt;br /&gt;
| Kott (POV), Pil, Hartmand&lt;br /&gt;
|-&lt;br /&gt;
| 5.2&lt;br /&gt;
| Events on Earth accelerate. Hartmand and company receive word that war has taken over an entire continent. Various of their colleagues are killed. Hartmand regrets not being present to exploit the chaos with his own supporters. Hartmand expects to receive word of evacuees of his own loyalists departing Earth to migrate to Hartland. Kott notes that Hartmand has not been keeping Earth abreast of Hartland&#039;s developments. Kott decides to murder Hartmand and Dorcheson for their glee at the news of political instability on Earth.&lt;br /&gt;
| Kott (POV), Hartmand, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 5.3&lt;br /&gt;
| Kott schemes against Hartmand and the other pancreators. Kott plans to secretly give the bugs an evolutionary advantage and then pin the blame on Pil.  Kott, Hartmand, and the other crew take turns undoing each otherʼs Conflation work. Hartmand insists on sculpting predators; Milner sculpts herbivorous prey.&lt;br /&gt;
| Kott (POV), Hartmand, Pil, Dorcheson, Milner&lt;br /&gt;
|-&lt;br /&gt;
| 5.4&lt;br /&gt;
| Kott emerges from conflation.  Kott realizes that she and the other pancreators have finally created something of value for the first time.  Kott recognizes they were parasites on Earth, extracting value for profit.  The pancreators mock and scoff at fall of Earth as they receive word that various technological disasters are making the planet uninhabitable.  Hartmand and Dorcheson joke that someone should have done something to prevent disaster.  Kott prints a knife but cannot push herself to slit her wrists to kill herself.&lt;br /&gt;
| Kott (POV), Hartmand, Pil, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 5.5&lt;br /&gt;
| Hartmand cheers on the collapse of Earth for the power vacuum that he and his supporters will one day be able to fill.  Kott grapples with her nascent empathy.  Hartmand continues to vovaliize faith that his followers from Earth will soon arrive.  Kott dives into conflation.  She is unexpectedly secretly joined by Pil.  Pil proposes he and Kott mutiny against the others.&lt;br /&gt;
| Kott (POV), Pil, Hartmand&lt;br /&gt;
|-&lt;br /&gt;
| 5.6&lt;br /&gt;
| The pancreators watch the final throes of advanced human civilization in Earth&#039;s solar system. A final broadcast is received that disables Domus and cuts power to the ship.&lt;br /&gt;
| Kott (POV), Hartmand, Pil&lt;br /&gt;
|-&lt;br /&gt;
| 6.1&lt;br /&gt;
| A very brief summary of inevitably uninhabitable conditions on Earth following its technological collapse.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.2&lt;br /&gt;
| Cosimir, Goscari, and Peligrent witness the fall and destruction of their ark ship &#039;&#039;Nergal&#039;&#039;.&lt;br /&gt;
| Cosimir (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 6.3&lt;br /&gt;
| Hannoy approaches Cosimir at mealtime to tell her she has the aptitude to be a captain. Cosimir reflects that to be captain material is to be a ruthless bastard willing to dispose of human lives if survival requires. Cosimir tells Hannoy as much and is invited by Project Management to meet.&lt;br /&gt;
| Cosimir (POV), Hannoy&lt;br /&gt;
|-&lt;br /&gt;
| 6.4&lt;br /&gt;
| Hannoy introduces Cosimir to Captain Olumo.  Cosimir recalls his history as captain of the &#039;&#039;Pangu&#039;&#039;, one of the early failed ark ships that managed to return to Earth safely.  Hannoy plays a translation of an audio recording of Hartmand to Cosimir; Hartmand invites his followers to settle his planet if they are deprived.  Olumo confesses he cannot serve as Captain due to radiation exposure he suffered while aboard the &#039;&#039;Pangu&#039;&#039;.&lt;br /&gt;
| Cosimir (POV), Hannoy, Olumo&lt;br /&gt;
|-&lt;br /&gt;
| 6.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 6.8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 7.2&lt;br /&gt;
| Cato, Alis, and Avigael find the corpse of spider. Helena. Cato saves Avigael from being captured in a plant trip.&lt;br /&gt;
| Alis (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 7.3&lt;br /&gt;
| Cato, Avigael, and Alis breach and board the derelict Arcship. They find cargo pods full of corpses. Alis recalls the failed arkship of Imir.&lt;br /&gt;
| Cato, Alis, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 7.4&lt;br /&gt;
| Alis retrieves a Kern robot. Excavation. Cato finds evidence a survivor recently escaped the ark. Avigael suspects Mira.&lt;br /&gt;
| Cato, Alis, Avigael&lt;br /&gt;
|-&lt;br /&gt;
| 8.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 8.2&lt;br /&gt;
| Cosimir orders the immediate settling of the planet below them.&lt;br /&gt;
| Cosimir&lt;br /&gt;
|-&lt;br /&gt;
| 8.3&lt;br /&gt;
| Hieron leads a team to explore the kernel from which the orbital elevator plant is growing. Hieron find four corpses of the ancients. She brings back samples to the &#039;&#039;Marduk&#039;&#039;. A sample awakens and grows.&lt;br /&gt;
| Hieron (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 8.4&lt;br /&gt;
| Kieraven leads a landing party. Fennec (?) takes an experimental breath. Kieraven and company gun down a mega fauna they agitated.&lt;br /&gt;
| Kieraven (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 8.5&lt;br /&gt;
| Cosimir broadcasts Heartland&#039;s habitability. Bartilow witnesses the birth of a cult around Hartmandʼs recording. Bartilow sees invasive flora aboard the &#039;&#039;Marduk&#039;&#039;.&lt;br /&gt;
| Cosimir (POV), Bartilow (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.1&lt;br /&gt;
| Mira remembers her artisanal primary identity while being injured by a beast of Hartland. Mira forces the beast to swallow her body whole.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.2&lt;br /&gt;
| Neco witnesses Mira dissolve a pig after being vored. Flees to Four Dragon Ford.&lt;br /&gt;
| Neco Kasmar (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.3&lt;br /&gt;
| How Portiafabian came to be.&lt;br /&gt;
| Portia (POV), Fabian, Avigael &lt;br /&gt;
|-&lt;br /&gt;
| 9.4&lt;br /&gt;
| Mira follows Neco to Four Dragon Ford. Mira recalls Arkship languages and hails the fortress settlement. Mira hungers for the experiences of its inhabitants.&lt;br /&gt;
| Mira (POV), Neco&lt;br /&gt;
|-&lt;br /&gt;
| 9.5&lt;br /&gt;
| Avigael recounts to Alis that Mira is a Nodan entity who must be retrieved for the planet&#039;s sake.&lt;br /&gt;
| Alis (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.6&lt;br /&gt;
| Mira continues to plead for the fortress inhabitants to listen to her but is only continuously shot. The gates open for melee forces to defend upon her.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.7&lt;br /&gt;
| Avigael describes how the trauma of escaping the derelict arkship and landing on a hostile planet may cause Mira to go feral. Under enough damage, Mira may be lost.&lt;br /&gt;
| Alis (POV), Avigael, Cato&lt;br /&gt;
|-&lt;br /&gt;
| 9.8&lt;br /&gt;
| Fortress forces continue butcher Mira. Mira finally retaliates, absorbing her attackers. Udin orders flamethrowers to be deployed which ultimately drive Mira back into the forest.&lt;br /&gt;
| Neco (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 9.9&lt;br /&gt;
| Mira fights to maintain individuality and consciousness. Mira is driven away by fire. Mira flees into the woods where flora and fauna continuously reject and attack her.&lt;br /&gt;
| Mira (POV)&lt;br /&gt;
|-&lt;br /&gt;
| 10.1&lt;br /&gt;
| The visionaries fight for survival and thenselves aboard their derelict dead ship.&lt;br /&gt;
| Hartmand, Pil, Kott (POV), Milner, Dorcheson&lt;br /&gt;
|-&lt;br /&gt;
| 10.2&lt;br /&gt;
| Kott wanders the &#039;&#039;Pancreator&#039;&#039;. She sees a glow. Pil shows Kott the biological Conflation interface with the planet is still operational despite the loss of Domus. Pil invites Kott to resume influencing the terraforming activities.&lt;br /&gt;
| Kott (POV), Pil&lt;br /&gt;
|-&lt;br /&gt;
| 10.3&lt;br /&gt;
| Kott and Pil work to restore systems of the pen creator despite the dwindling cognitive resources available to the diminishing biodiversity available within the planets below. &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10.4&lt;br /&gt;
| Caught explains to Hartmand, Dorchester, and Milner how she restores power with biological systems. Dorchester demands that the pen crate should be purged of all biological growth. Pill promises to restore communications with Earth thus appealing to Hartmand who gives his blessing to the plan.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 15.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 15.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 15.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 15.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 15.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 15.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 17.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18.8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 19.6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=James_Meese&amp;diff=198231</id>
		<title>James Meese</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=James_Meese&amp;diff=198231"/>
		<updated>2026-09-10T20:07:30Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;James Meese&amp;#039;&amp;#039;&amp;#039; is an australian media policy scholar.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats== * Wikidata:Q108425099 * Mastodon: https://mastodon.social/@jamesmeese  ==History== * 2022: Quoted by Rebecca Giblin and Cory Doctorow in &amp;#039;&amp;#039;Chokepoint Capitalism&amp;#039;&amp;#039; from an unpublished 2020 manuscript titled “Advertising, Algorithms, and Democratic Risk”.&amp;lt;ref name=&amp;quot;&amp;quot;&amp;gt;Rebecca Gibl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;James Meese&#039;&#039;&#039; is an [[australian]] [[media policy]] scholar.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* [[Wikidata:Q108425099]]&lt;br /&gt;
* Mastodon: https://mastodon.social/@jamesmeese&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2022]]: Quoted by [[Rebecca Giblin]] and [[Cory Doctorow]] in &#039;&#039;[[Chokepoint Capitalism]]&#039;&#039; from an unpublished [[2020]] manuscript titled “Advertising, Algorithms, and Democratic Risk”.&amp;lt;ref name=&amp;quot;&amp;quot;&amp;gt;[[Rebecca Giblin]]; [[Cory Doctorow]].  ([[2022-09-27]]).  “[[Chokepoint Capitalism]]”.  &#039;&#039;[[Beacon Press|beacon.org]]&#039;&#039;.  ISBN: &amp;lt;code&amp;gt;9780807007075&amp;lt;/code&amp;gt;.  Accessed [[2026-09-10]].  “‘Premium news brands can continue to rely on customer data, now collected in house, and can also expect to collect revenue from online advertising.’ But smaller publishers are unlikely to be able to gather enough first-party data to interest advertisers. ‘This could further accelerate the decline of local news … and harm local and regional news ecosystems, challenging efforts to ensure a diverse media landscape.’ ”&amp;lt;/ref&amp;gt;&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Kill_Decision&amp;diff=198230</id>
		<title>Kill Decision</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Kill_Decision&amp;diff=198230"/>
		<updated>2026-09-08T18:50:49Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Kill Decision&#039;&#039;&#039; is a [[2012]] [[techno thriller]] novel by [[Daniel Suarez]] about [[unmanned combat aerial vehicles]] that use [[computer vision]] and [[pheromone]]-based [[stigmergy]] to autonomously assassinate civilians and kill combatants.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
===Places===&lt;br /&gt;
===Things===&lt;br /&gt;
; stigmergy &lt;br /&gt;
: (c13) communication performed by parts of a system by modifying properties the local environment (e.g. pheromones in an ant colony)&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2026-08-27]]: [[Leo Laporte]] mentions on [[IM 885]] a report that the [[Russia]] military has deployed a drone that killed [[Ukrainian]] civilians in the on-going [[Russo-Ukrainian war]].&amp;lt;ref name=&amp;quot;im_20260826_885-butter-box&amp;quot;&amp;gt;[[Leo Laporte]]; [[Jeff Jarvis]]; [[Christina Warren]].  “[https://twit.tv/shows/intelligent-machines/episodes/885 IM 885: Get on the Butter Box]”.  &#039;&#039;[[twit.tv]]&#039;&#039;.  Accessed [[2026-09-08]].  Time: 1h55m15s/2h12m37s.  &amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;nyt_20260824_autonomous-drone-killings&amp;quot;&amp;gt;[[Andrew E. Kramer]].  ([[2026-08-24]]).  “[https://www.nytimes.com/2026/08/24/world/europe/russia-drones-autonomous-ai-kill-ukraine-war.html A Drone Killed Three Ukrainians. It Was Guided Entirely by A.I.]”.  &#039;&#039;[[nytimes.com]]&#039;&#039;.  Accessed [[2026-09-08]].  “A small Russian drone resembling a model airplane swooped down from the sky last month in the city of [[Zaporizhzhia]] in southeastern [[Ukraine]]. As it tried to navigate toward a gas station, it crashed into a wall and exploded in a hail of shrapnel, killing [[Tetiana Bubynets]], 19, a university student, and two others.  ¶ Autonomous A.I. systems can be trained on thousands of images to recognize categories like “river,” “military truck” or “person.” Self-targeting drones use their cameras to hunt for these things with greater precision than a human pilot can provide. But opponents of such weapons argue that, without human intervention, drones may be more prone to mistakes or violations of the laws of war, such as by failing to distinguish innocent civilians from combatants. … ¶ The use of self-targeting A.I. in the gas station attack, on [[2026-07-06|July 6]], would be the first documented case in which civilian deaths were caused by a Russian drone outfitted with such a system, said [[Kateryna Bondar]], a senior fellow at the Wadhwani AI Center at the [[Center for Strategic and International Studies]] in Washington. She added that the Nvidia module “is the best proof” that Russia was experimenting with autonomous A.I. … ¶ [[Nvidia]] confirmed that the photos showed a [[Jetson Orin]] minicomputer. Such modules, which cost only a few hundred dollars, have been found on several types of Russian weapons. ”  &amp;lt;/ref&amp;gt;&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Kill_Decision&amp;diff=198229</id>
		<title>Kill Decision</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Kill_Decision&amp;diff=198229"/>
		<updated>2026-09-08T18:50:37Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Kill Decision&#039;&#039;&#039; is a [[2012]] [[techno thriller]] novel by [[Daniel Suarez]] about [[unmanned combat aerial vehicles]] that use [[computer vision]] and [[pheromone]]-based [[stigmergy]] to autonomously assassinate civilians and kill combatants.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
===Places===&lt;br /&gt;
===Things===&lt;br /&gt;
; stigmergy &lt;br /&gt;
: (c13) communication performed by parts of a system by modifying properties the local environment (e.g. pheromones in an ant colony)&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2026-08-27]]: [[Leo Laporte]] mentions on [[IM 885]] a report that the [[Russia]] military has deployed a drone that killed [[Ukrainian]] civilians in the on-going [[Russo-Ukrainian war]].&amp;lt;red name=&amp;quot;im_20260826_885-butter-box&amp;quot;&amp;gt;[[Leo Laporte]]; [[Jeff Jarvis]]; [[Christina Warren]].  “[https://twit.tv/shows/intelligent-machines/episodes/885 IM 885: Get on the Butter Box]”.  &#039;&#039;[[twit.tv]]&#039;&#039;.  Accessed [[2026-09-08]].  Time: 1h55m15s/2h12m37s.  &amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;nyt_20260824_autonomous-drone-killings&amp;quot;&amp;gt;[[Andrew E. Kramer]].  ([[2026-08-24]]).  “[https://www.nytimes.com/2026/08/24/world/europe/russia-drones-autonomous-ai-kill-ukraine-war.html A Drone Killed Three Ukrainians. It Was Guided Entirely by A.I.]”.  &#039;&#039;[[nytimes.com]]&#039;&#039;.  Accessed [[2026-09-08]].  “A small Russian drone resembling a model airplane swooped down from the sky last month in the city of [[Zaporizhzhia]] in southeastern [[Ukraine]]. As it tried to navigate toward a gas station, it crashed into a wall and exploded in a hail of shrapnel, killing [[Tetiana Bubynets]], 19, a university student, and two others.  ¶ Autonomous A.I. systems can be trained on thousands of images to recognize categories like “river,” “military truck” or “person.” Self-targeting drones use their cameras to hunt for these things with greater precision than a human pilot can provide. But opponents of such weapons argue that, without human intervention, drones may be more prone to mistakes or violations of the laws of war, such as by failing to distinguish innocent civilians from combatants. … ¶ The use of self-targeting A.I. in the gas station attack, on [[2026-07-06|July 6]], would be the first documented case in which civilian deaths were caused by a Russian drone outfitted with such a system, said [[Kateryna Bondar]], a senior fellow at the Wadhwani AI Center at the [[Center for Strategic and International Studies]] in Washington. She added that the Nvidia module “is the best proof” that Russia was experimenting with autonomous A.I. … ¶ [[Nvidia]] confirmed that the photos showed a [[Jetson Orin]] minicomputer. Such modules, which cost only a few hundred dollars, have been found on several types of Russian weapons. ”  &amp;lt;/ref&amp;gt;&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Kill_Decision&amp;diff=198228</id>
		<title>Kill Decision</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Kill_Decision&amp;diff=198228"/>
		<updated>2026-09-08T18:45:28Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Kill Decision&amp;#039;&amp;#039;&amp;#039; is a 2012 techno thriller novel by Daniel Suarez about unmanned combat aerial vehicles that use computer vision and pheromone-based stigmergy to autonomously assassinate civilians and kill combatants.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats==   ==Details== ===People=== ===Places=== ===Things=== ; stigmergy  : (c13) communication performed by parts of a system by mo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Kill Decision&#039;&#039;&#039; is a [[2012]] [[techno thriller]] novel by [[Daniel Suarez]] about [[unmanned combat aerial vehicles]] that use [[computer vision]] and [[pheromone]]-based [[stigmergy]] to autonomously assassinate civilians and kill combatants.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
===Places===&lt;br /&gt;
===Things===&lt;br /&gt;
; stigmergy &lt;br /&gt;
: (c13) communication performed by parts of a system by modifying properties the local environment (e.g. pheromones in an ant colony)&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2026-08-27]]: [[Leo Laporte]] mentions on [[IM 885]] a report that the [[Russia]] military has deployed a drone that killed [[Ukrainian]] civilians in the on-going [[Russo-Ukrainian war]].&amp;lt;ref name=&amp;quot;nyt_20260824_autonomous-drone-killings&amp;quot;&amp;gt;[[Andrew E. Kramer]].  ([[2026-08-24]]).  “[https://www.nytimes.com/2026/08/24/world/europe/russia-drones-autonomous-ai-kill-ukraine-war.html A Drone Killed Three Ukrainians. It Was Guided Entirely by A.I.]”.  &#039;&#039;[[nytimes.com]]&#039;&#039;.  Accessed [[2026-09-08]].  “A small Russian drone resembling a model airplane swooped down from the sky last month in the city of [[Zaporizhzhia]] in southeastern [[Ukraine]]. As it tried to navigate toward a gas station, it crashed into a wall and exploded in a hail of shrapnel, killing [[Tetiana Bubynets]], 19, a university student, and two others.  ¶ Autonomous A.I. systems can be trained on thousands of images to recognize categories like “river,” “military truck” or “person.” Self-targeting drones use their cameras to hunt for these things with greater precision than a human pilot can provide. But opponents of such weapons argue that, without human intervention, drones may be more prone to mistakes or violations of the laws of war, such as by failing to distinguish innocent civilians from combatants. … ¶ The use of self-targeting A.I. in the gas station attack, on [[2026-07-06|July 6]], would be the first documented case in which civilian deaths were caused by a Russian drone outfitted with such a system, said [[Kateryna Bondar]], a senior fellow at the Wadhwani AI Center at the [[Center for Strategic and International Studies]] in Washington. She added that the Nvidia module “is the best proof” that Russia was experimenting with autonomous A.I. … ¶ [[Nvidia]] confirmed that the photos showed a [[Jetson Orin]] minicomputer. Such modules, which cost only a few hundred dollars, have been found on several types of Russian weapons. ”  &amp;lt;/ref&amp;gt;&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Diaspora_(novel)&amp;diff=198226</id>
		<title>Diaspora (novel)</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Diaspora_(novel)&amp;diff=198226"/>
		<updated>2026-08-17T16:44:10Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Diaspora&amp;#039;&amp;#039;&amp;#039; is a 1997 novel by Greg Egan.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats== * Author: Greg Egan * Publication date: ** 1997: 1st Edition ** 2013: 2nd Edition  ==Details== ===People=== ; fleshers : Biological people.  ; Inoshiro : (c6s1) Adopts Buddhism and permanently loses their will to strive.  ; Orlando : (c5) Suffers mortal wounds during the storm caused by the gamma ray bu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Diaspora&#039;&#039;&#039; is a [[1997]] novel by [[Greg Egan]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Author: [[Greg Egan]]&lt;br /&gt;
* Publication date:&lt;br /&gt;
** [[1997]]: 1st Edition&lt;br /&gt;
** [[2013]]: 2nd Edition&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
; fleshers&lt;br /&gt;
: Biological people.&lt;br /&gt;
&lt;br /&gt;
; Inoshiro&lt;br /&gt;
: (c6s1) Adopts [[Buddhism]] and permanently loses their will to strive.&lt;br /&gt;
&lt;br /&gt;
; Orlando&lt;br /&gt;
: (c5) Suffers mortal wounds during the storm caused by the gamma ray burst. Is killed-scanned by Yatima with an Introdus.&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; Atlanta&lt;br /&gt;
: A city where fleshers continue to live.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; Introdus&lt;br /&gt;
: A nanoware device that destructively scans the bodies of living biological creatures in order to create a non-biological digital emulation.&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Books]]&lt;br /&gt;
[[Category:Science fiction]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Palindrome&amp;diff=198225</id>
		<title>Palindrome</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Palindrome&amp;diff=198225"/>
		<updated>2026-08-13T20:43:29Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; A &amp;#039;&amp;#039;&amp;#039;palindrome&amp;#039;&amp;#039;&amp;#039; is a word that reads the same forwards as backwards.    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats==  ==List of palindromes== ; A man a plan a canal Panama  ; Racecar  ; Tacocat  ; Was it a car or a cat I saw?  ; Rats live on no evil star.  ; senile felines  ; We panic in a pew.  ; A butt tuba.  ==History==  {{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }} ==See also== * Wi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
A &#039;&#039;&#039;palindrome&#039;&#039;&#039; is a word that reads the same forwards as backwards.    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==List of palindromes==&lt;br /&gt;
; A man a plan a canal Panama&lt;br /&gt;
&lt;br /&gt;
; Racecar&lt;br /&gt;
&lt;br /&gt;
; Tacocat&lt;br /&gt;
&lt;br /&gt;
; Was it a car or a cat I saw?&lt;br /&gt;
&lt;br /&gt;
; Rats live on no evil star.&lt;br /&gt;
&lt;br /&gt;
; senile felines&lt;br /&gt;
&lt;br /&gt;
; We panic in a pew.&lt;br /&gt;
&lt;br /&gt;
; A butt tuba.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Pok%C3%A9mon_Go_notes&amp;diff=198222</id>
		<title>Pokémon Go notes</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Pok%C3%A9mon_Go_notes&amp;diff=198222"/>
		<updated>2026-06-20T21:19:49Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{bk}}ʼs notes for [[Pokémon Go]].    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==Terminology==&lt;br /&gt;
; CP&lt;br /&gt;
: (a.k.a. &#039;&#039;&#039;Combat Power&#039;&#039;&#039;) A rough measure of Pokemon strength visible even for uncaught Pokemon in the wild. A function of attack, defense, stamina, and level.&amp;lt;ref&amp;gt;[[Kratos]].  ([[2018-02-05]]).  “[https://pokemongohub.net/post/wiki/cp-mechanics/ Pokémon GO Combat Power: Ultimate Guide]”.  &#039;&#039;[[pokemonhub.net]]&#039;&#039;.  Accessed [[2025-11-02]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Types==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Type chart&amp;lt;ref name=&amp;quot;pgohub_2025_pgo-type-chart&amp;quot;&amp;gt;“[https://db.pokemongohub.net/tools/type-chart Pokémon GO Type Chart]”.  (n.d.).  &#039;&#039;[[pokemongohub.net]]&#039;&#039;.  Accessed [[2025-10-15]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:right;&amp;quot; | Weak against&lt;br /&gt;
! Type&lt;br /&gt;
! Strong against&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Rock, &#039;&#039;&#039;Ghost&#039;&#039;&#039;, Steel&lt;br /&gt;
| Normal&lt;br /&gt;
| (none)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Flying, Poison, Bug, &#039;&#039;&#039;Ghost&#039;&#039;&#039;, Psychic, Fairy&lt;br /&gt;
| Fighting&lt;br /&gt;
| Normal, Rock, Steel, Ice, Dark&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Rock, Steel, Electric&lt;br /&gt;
| Flying&lt;br /&gt;
| Fighting, Bug, Grass&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Poison, Ground, Rock, Ghost, &#039;&#039;&#039;Steel&#039;&#039;&#039;&lt;br /&gt;
| Poison&lt;br /&gt;
| Grass, Fairy&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | &#039;&#039;&#039;Flying&#039;&#039;&#039;, Bug, Grass&lt;br /&gt;
| Ground&lt;br /&gt;
| Poison, Rock, Steel, Fire, Electric&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Fighting, Ground, Steel&lt;br /&gt;
| Rock&lt;br /&gt;
| Flying, Bug, Fire, Ice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Fighting, Flying, Poison, Ghost, Steel, Fire, Fairy&lt;br /&gt;
| Bug&lt;br /&gt;
| Grass, Psychic, Dark&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | &#039;&#039;&#039;Normal&#039;&#039;&#039;, Dark&lt;br /&gt;
| Ghost&lt;br /&gt;
| Ghost, Psychic&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Steel, Fire, Water, Electric&lt;br /&gt;
| Steel&lt;br /&gt;
| Rock, Ice, Fairy &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Rock, Fire, Water, Dragon&lt;br /&gt;
| Fire&lt;br /&gt;
| Bug, Steel, Grass, Ice&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Water, Grass, Dragon&lt;br /&gt;
| Water&lt;br /&gt;
| Ground, Rock, Fire&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Flying, Poison, Bug, Steel, Fire, Grass, Dragon&lt;br /&gt;
| Grass&lt;br /&gt;
| Ground, Rock, Water&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | &#039;&#039;&#039;Ground&#039;&#039;&#039;, Grass, Electric, Dragon&lt;br /&gt;
| Electric&lt;br /&gt;
| Flying, Water&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Steel, Psychic, &#039;&#039;&#039;Dark&#039;&#039;&#039;&lt;br /&gt;
| Psychic&lt;br /&gt;
| Fighting, Poison&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Steel, Fire, Water, Ice&lt;br /&gt;
| Ice&lt;br /&gt;
| Flying, Ground, Grass, Dragon&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Steel, &#039;&#039;&#039;Fairy&#039;&#039;&#039;&lt;br /&gt;
| Dragon&lt;br /&gt;
| Dragon&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Fighting, Dark, Fairy&lt;br /&gt;
| Dark&lt;br /&gt;
| Ghost, Psychic&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | Poison, Steel, Fire&lt;br /&gt;
| Fairy&lt;br /&gt;
| Fighting, Dragon, Dark&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Walking groups==&lt;br /&gt;
* [https://db.pokemongohub.net/pokemon-list/buddy-distance/1 1 km] ([[Mewtwo]], [[Gyarados]], [[Pidgeot]], [[Aggron]], [[Beedrill]])&lt;br /&gt;
* [https://db.pokemongohub.net/pokemon-list/buddy-distance/3 3 km] ([[Heracross]], [[Alakazam]], [[Charizard]], [[Swampert]], [[Gengar]], [[Blaziken]], [[Sceptile]], [[Blastoise]], [[Kangaskhan]], [[Houndoom]], [[Slowbro]], [[Lopunny]], [[Venusaur]], [[Banette]], [[Manectric]], [[Abomasnow]], [[Sharpedo]], [[Glalie]], [[Camperupt]])&lt;br /&gt;
* [https://db.pokemongohub.net/pokemon-list/buddy-distance/5 5 km] ([[Garchomp]], [[Tyranitar]], [[Salamence]], [[Metagross]], [[Gallade]], [[Gardevoir]], [[Ampharos]], [[Pinsir]], [[Aerodactyl]], [[Scizor]], [[Lucario]], [[Steelix]], [[Absol]])&lt;br /&gt;
* [https://db.pokemongohub.net/pokemon-list/buddy-distance/20 20 km] ([[Kyogre]], [[Groudon]], [[Rayquaza]], [[Latios]], [[Latias]], [[Diancie]])&lt;br /&gt;
&lt;br /&gt;
==Perfect IV CPs==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Name&lt;br /&gt;
! Date&lt;br /&gt;
! 4* CP&lt;br /&gt;
! 4* CP WB&lt;br /&gt;
|-&lt;br /&gt;
| [[Mega Malamar]]&lt;br /&gt;
| [[2026-03-01]]&lt;br /&gt;
| 1347&lt;br /&gt;
| 1685 ☁️🍃&lt;br /&gt;
|-&lt;br /&gt;
| [[Mega Dragonite]]&lt;br /&gt;
| [[2026-02-28]]&lt;br /&gt;
| 2167&lt;br /&gt;
| 2709 🍃&lt;br /&gt;
|-&lt;br /&gt;
| [[Mega Victreebel]]&lt;br /&gt;
| [[2026-02-28]]&lt;br /&gt;
| 1389&lt;br /&gt;
| 1736 ☀️☁️&lt;br /&gt;
|-&lt;br /&gt;
| [[Xerneas]]&lt;br /&gt;
| [[2026-02-28]]&lt;br /&gt;
| 2160&lt;br /&gt;
| 2701 ☁️&lt;br /&gt;
|-&lt;br /&gt;
| [[Yveltal]]&lt;br /&gt;
| [[2026-02-28]]&lt;br /&gt;
| 2160&lt;br /&gt;
| 2701 ☁️🍃&lt;br /&gt;
|-&lt;br /&gt;
| [[Kyurem]]&lt;br /&gt;
| [[2026-02-27]]&lt;br /&gt;
| 2040&lt;br /&gt;
| 2553 🍃🌨️&lt;br /&gt;
|-&lt;br /&gt;
| [[Zekrom]]&lt;br /&gt;
| [[2026-02-27]]&lt;br /&gt;
| 2307&lt;br /&gt;
| 2884 🍃☂️&lt;br /&gt;
|-&lt;br /&gt;
| [[Articuno]]&lt;br /&gt;
| [[2026-03-04]]&lt;br /&gt;
| 1743&lt;br /&gt;
| 2179 🌨️🍃&lt;br /&gt;
|-&lt;br /&gt;
| [[Zapdos]]&lt;br /&gt;
| [[2026-03-04]]&lt;br /&gt;
| 2015&lt;br /&gt;
| 2519 ☂️🍃&lt;br /&gt;
|-&lt;br /&gt;
| [[Moltres]]&lt;br /&gt;
| [[2026-03-04]]&lt;br /&gt;
| 1980&lt;br /&gt;
| 2475 ☀️🍃&lt;br /&gt;
|-&lt;br /&gt;
| [[Tapu Fini]]&lt;br /&gt;
| [[2026-05-27]]&lt;br /&gt;
| 1632&lt;br /&gt;
| 2041 🌨️☁️&lt;br /&gt;
|-&lt;br /&gt;
| [[Reshiram]]&lt;br /&gt;
| [[2026-06-03]]&lt;br /&gt;
| 2307&lt;br /&gt;
| 2884 🍃☀️&lt;br /&gt;
|-&lt;br /&gt;
| [[Zekrom]]&lt;br /&gt;
| [[2026-06-10]]&lt;br /&gt;
| 2307&lt;br /&gt;
| 2884 🍃🌨️&lt;br /&gt;
|-&lt;br /&gt;
| [[Necrozma]]&lt;br /&gt;
| [[2026-06-17]]&lt;br /&gt;
| 2104&lt;br /&gt;
| 2630 🍃&lt;br /&gt;
|-&lt;br /&gt;
| [[Kartana]]&lt;br /&gt;
| [[2026-06-24]]&lt;br /&gt;
| 2101&lt;br /&gt;
| 2626 ☀️❄️&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Team Rocket opponents==&lt;br /&gt;
===Cliff===&lt;br /&gt;
* [[Larvitar]], [[Honchcrow]], [[Tyranitar]]&lt;br /&gt;
&lt;br /&gt;
===Sierra===&lt;br /&gt;
* [[Feebas]], [[Staraptor]], _&lt;br /&gt;
&lt;br /&gt;
==Cost groups==&lt;br /&gt;
Baby Pokémon (i.e. hatched from eggs) generally are in a lower cost group than what they evolve into. Therefore, power them up before evolving in order to save stardust and candy. As of [[2025-10]], the only exceptions to non-baby Pokémon going up in cost group is the evolution of [[Hisuian Sneasel]] and [[Hisuian Qwilfish]]. Otherwise, evolution does not affect stardust or candy costs when powering up a Pokémon un [[Pokémon GO]].&amp;lt;ref name=&amp;quot;nickblack_2025_pgoq&amp;quot;&amp;gt;[[Nick Black]].  ([[2025]]).  “[https://nick-black.com/pgo-quantitative.pdf Pokémon GO: A Quantitative Approach]”.  &#039;&#039;[[nick-black.cpm]]&#039;&#039;.  Accessed [[2025-10-26]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pokémon search strings==&lt;br /&gt;
See [https://pokemongohub.net/post/guide/pokemon-go-search-bar-cheat-sheet/ cheat sheet].&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;0-2defense,0-2hp&amp;amp;!shadow&amp;lt;/code&amp;gt;&lt;br /&gt;
: Pokémon with level 0-2 IVs in defense and stamina that are also not shadow. Useful for identifying Pokémon to transfer (trash).&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;3*&amp;amp;mega0&amp;amp;megaevolve&amp;lt;/code&amp;gt;&lt;br /&gt;
: Pokémon that are 3-star, have never been mega-evolved and can be mega-evolved now.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;3*&amp;amp;4attack&amp;amp;3-4defense&amp;amp;3-4hp&amp;amp;evolve&amp;amp;evolvenew&amp;lt;/code&amp;gt;&lt;br /&gt;
: Pokémon worth evolving. They are 3-star, have max attack IV, have high defense, have high stamina, will evolve into something not in the Pokédex, and can be evolved now with items at hand.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;1&amp;amp;!xxs&amp;amp;!xxl&amp;amp;!favorite&amp;amp;!dynamax&amp;amp;!gigantamax&amp;amp;!shadow&amp;amp;!4*&amp;amp;0*,1*,2*&amp;lt;/code&amp;gt;&lt;br /&gt;
: Transfer Pokémon by number (Bulbasaur: 1)&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;!shadow&amp;amp;63,64,66,67,74,75,92,93,524,525,532,533,588,616,708,710&amp;lt;/code&amp;gt;&lt;br /&gt;
: Pokémon that evolve with a trade for 0 candy.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;shadow&amp;amp;10-12,13-15,16-18,19-20,41-42,74-76,129-130,165-166,169,261-262,293-295,304-306,320-321,325-326,333-334,339-340,396-398,399-400,504-505,509-510,519-521,557-558,580-581,590-591,661-663,731-733,736-738,759-760&amp;lt;/code&amp;gt;&lt;br /&gt;
: 1k stardust for purification&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;1-9,152-160,252-260,387-395,495-503,650-658,722-730,810-818,906-914&amp;lt;/code&amp;gt;&lt;br /&gt;
: Starter pokémon&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;water&amp;amp;@1water&amp;amp;@2water&amp;lt;/code&amp;gt;&lt;br /&gt;
: Pokemon that are water type AND have a water-type fast move AND have a water-type charged attack&lt;br /&gt;
&lt;br /&gt;
==Friend search strings==&lt;br /&gt;
; &amp;lt;code&amp;gt;interactable&amp;amp;!lucky&amp;lt;/code&amp;gt;&lt;br /&gt;
: Friends not interacted with in past day and aren&#039;t lucky.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;interactable&amp;amp;giftable&amp;amp;friendlevel3-4&amp;lt;/code&amp;gt;&lt;br /&gt;
: Friends to give gifts to first.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;friendlevel1-3&amp;lt;/code&amp;gt;&lt;br /&gt;
: Friends of level 1 through 3.&amp;lt;ref name=&amp;quot;gohub_20241210_pgo-friend-search&amp;quot;&amp;gt;“[https://pokemongohub.net/post/guide/tricks-to-navigate-and-optimize-your-pokemon-go-friends-list/ Tricks to Navigate and Optimize Your Pokémon GO Friends List]”. ([[2024-12-10]]).  &#039;&#039;[[pokemongohub.net]]&#039;&#039;.  Accessed [[2026-03-01]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;giftable&amp;lt;/code&amp;gt;&lt;br /&gt;
: Friends not sent a gift to.&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
Pokemon GO redemption code format: &amp;lt;code&amp;gt;https://store.pokemongo.com/offer-redemption?passcode=DEADBEEFDEADB&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
* [[List of Pokémon]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
* [https://pokemongo.com/ Main website]&lt;br /&gt;
* [[Nick Black]]ʼs &#039;&#039;[[Pokémon Go: A Quantitative Approach]] ([https://nick-black.com/pgo-quantitative.pdf PDF])&lt;br /&gt;
* [https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_National_Pok%C3%A9dex_number Bulbapedia List of Pokémon by National Pokédex number]&lt;br /&gt;
{{Refsec}}&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=The_Archimedes_Engine&amp;diff=198221</id>
		<title>The Archimedes Engine</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=The_Archimedes_Engine&amp;diff=198221"/>
		<updated>2026-06-19T08:04:04Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Redirected page to Exodus: The Archimedes Engine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Exodus: The Archimedes Engine]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Exodus:_The_Archimedes_Engine&amp;diff=198220</id>
		<title>Exodus: The Archimedes Engine</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Exodus:_The_Archimedes_Engine&amp;diff=198220"/>
		<updated>2026-06-19T08:03:26Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;The Archimedes Engine&amp;#039;&amp;#039;&amp;#039; is a 2024 science fiction book by Peter F. Hamilton that establishes lore for an unreleased video game by Archetype Entertai...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;The Archimedes Engine&#039;&#039;&#039; is a [[2024]] [[science fiction]] book by [[Peter F. Hamilton]] that establishes [[lore]] for an unreleased [[video game]] by [[Archetype Entertainment]] called &#039;&#039;[[Exodus (2027 game)|Exodus]]&#039;&#039;. It is followed by the sequel &#039;&#039;[[Exodus: The Helium Sea]]&#039;&#039; ([[2026]]).    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Next: &#039;&#039;[[Exodus: The Helium Sea]]&#039;&#039;&lt;br /&gt;
* Author: [[Peter F. Hamilton]]&lt;br /&gt;
* Publication date: [[2026]]&lt;br /&gt;
* Publisher: [[Random House Worlds]]&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
; Aljan&lt;br /&gt;
: (c15) A son of Terence and brother to Vanilda.&lt;br /&gt;
&lt;br /&gt;
; Annabeth&lt;br /&gt;
: (c?) Medic and girlfriend of Terence. (c7) Dumps Terence due to his long work hours.&lt;br /&gt;
&lt;br /&gt;
; Asahi-Iryna&lt;br /&gt;
: (c25) The archon assigned by Ualana-Shoigu to replace archon Makaio-Faraji.&lt;br /&gt;
&lt;br /&gt;
; Avone-Valerio, General&lt;br /&gt;
: (c28) Imperial Knight assigned by Queen Helena-Thyra to take over Gondiar in retribution for the assassination of Makaio-Faraji. (c29) A missile strike from their forces kills the marchioness after Imperial ghosts are shot by a sniper while en route to capture Otylia.&lt;br /&gt;
&lt;br /&gt;
; Bekket&lt;br /&gt;
: (c4) A first life male partner of Helena-Chione and sire of Thyra.&lt;br /&gt;
&lt;br /&gt;
; Bensath, Sergeant&lt;br /&gt;
: (c18) A mercenary hired by Gyvoy for raiding a Celestial compound on Kajval. (c22) A mercenary hired by Gyvoy for raiding a factory on Kingsnest.&lt;br /&gt;
&lt;br /&gt;
; Clavissa &lt;br /&gt;
: (c8) One of the congregant daughters of Helena-Chione. Ambushes Thyra with other daughters but fails. (c15) Daughter of Jolav-Dabny. Injured by a bloodlien and rescued by congregant daughter Thyra during their Second Trial. (c30) Agrees to spy on Helena-Thyra for her father, Jolav-Dabny, and his friend, Gahiji-Calder.&lt;br /&gt;
&lt;br /&gt;
; Colvin&lt;br /&gt;
: (c7) A Stanvar8 gang member who Terance interrogates for information on Dagon. Mysteriously self-immolates during an interrogation.&lt;br /&gt;
&lt;br /&gt;
; Dagon&lt;br /&gt;
: (c7) A focus of Terenceʼs investigations into the Q-I-X movement. Linked to the death of Younes and Colvin.&lt;br /&gt;
&lt;br /&gt;
; Delfina&lt;br /&gt;
: (c15) Daughter of Ualana-Lyon. Dies during the Second Trial.&lt;br /&gt;
&lt;br /&gt;
; Dushan&lt;br /&gt;
: (c16) Son (?) of Otylia and Josias. Sibling of Laurella.&lt;br /&gt;
&lt;br /&gt;
; Eleanor&lt;br /&gt;
: (a.k.a. “Ellie”) A human stranded on Anoosha when their spacecraft crashes. Helps Finn after he lands in a tree.&lt;br /&gt;
&lt;br /&gt;
; Elohim&lt;br /&gt;
: (c1) An ancient starfaring people who terraformed many planets and constructed the Gates of Heaven. Presumably control the course of Dolod via its Archimedes Engine.&lt;br /&gt;
&lt;br /&gt;
; Eulaie&lt;br /&gt;
: (c31) A congregant daughter of Helena-Thyra who eliminated two other congregant daughters in First Trial.&lt;br /&gt;
&lt;br /&gt;
; Faraji&lt;br /&gt;
: (c1) A curious young boy destined to host Makaio‑Yalbo’s mindline. See &#039;&#039;&#039;Makaio-Faraji&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Finn&lt;br /&gt;
: (c1) A Uranic human capable of manipulating livestone. Thrown from a plane above the Camurdy Mountains on Anoosha. Rescued by Ellie and Josias.&lt;br /&gt;
&lt;br /&gt;
; Gahiji-Calder&lt;br /&gt;
: (c2) Chief archon of Wynid for Helena-Chione. (c23) Queen Helena-Thyra replaces Gahiji-Calder with Ualana-Shoigu as chief archon. (c25) Conspires with Jolav-Dabny and Makaio-Faraji to investigate anomalous behavior of Ualana-Shoigu and Queen Helena-Thyra.&lt;br /&gt;
&lt;br /&gt;
; Gyvoy&lt;br /&gt;
: (c6) A traveler of the Enfoe Traveler Dynasty whom Finn knows. (c18) Accompanies Finn to the Hoa Quinzu in order to retrieve a Celestial dropship for descending into Dolod&#039;s atmosphere when it arrives at Kelowan. (c?) Accompanies Finn to retrieve the Archimedes Engine operating system from Kingsnest. (c30) Terence finds the real Gyvoyʼs corpse enclosed within livestone in the Stanvar8&#039;s Dark Paradise club, indicating the Gyvoy accompanying Finn on the &#039;&#039;Diligent&#039;&#039; is a imposter. (c34) Retrieves a large quantity of antimatter from an Archimedes Engine engine station of Dolod and loads it onto &#039;&#039;Arcadiaʼs Moon&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Helena-Chione&lt;br /&gt;
: (c4) Gives birth to only a single daughter: Thyra. (c21) Is dominated by Thyra with neural weaponry. Gives up her memories to Thyra who becomes Helena-Thyra. Dies.&lt;br /&gt;
&lt;br /&gt;
; Helena-Thyra&lt;br /&gt;
: See &#039;&#039;&#039;Thyra&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Iuntin-Detlef&lt;br /&gt;
: (c20) Senior representative of the Guillrameo family. Murders Ualana-Lyon.&lt;br /&gt;
&lt;br /&gt;
; Jimena&lt;br /&gt;
: (c7) A forensics technician who assists Terenceʼs investigation of Younesʼs murder.&lt;br /&gt;
&lt;br /&gt;
; Jolav-Dabny&lt;br /&gt;
: (c15) Father of Clavissa who was wounded during the Second Trial and saved by Thyra. Consoles Ualana-Lyon following their loss of Delfina (c25) Conspires with Gahiji-Calder and Makaio-Faraji to investigate anomalous behavior of Ualana-Shoigu and Queen Helena-Thyra.&lt;br /&gt;
&lt;br /&gt;
; Josias Aponi&lt;br /&gt;
: (c1) A human stranded on Anoosha when their spacecraft crashes. Helps Finn. (c3) Leader of the arkship &#039;&#039;Diligent&#039;&#039; and its human refugees who arrived at the Kelowan system from the Sol system asteroid &#039;&#039;Eunomia&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Laurella&lt;br /&gt;
: (c16) Daughter of Otylia and Josias. Sister of Dushan.&lt;br /&gt;
&lt;br /&gt;
; Liliana&lt;br /&gt;
: (c1) Throws Finn out an airplane above the Camurdy Mountains of Anoosha. (c2) Captures Finn as a Quinitai family double-agent in order to maintain Anooshaʼs government. (c17) Murders Marcellu. (c20) Helps Iuntin-Detlef murder Ualana-Lyon. (c29) Helps convince Josias to become a figurehead for human liberation on Gondiar. (c34) Helps Gyvoy secure anti-matter aboard &#039;&#039;Arcadiaʼs Moon&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Luus-Marcela, Queen&lt;br /&gt;
: (c2) Queen of Bassa of the Crown Dominion.&lt;br /&gt;
&lt;br /&gt;
; Makaio‑Yalbo&lt;br /&gt;
: (c1) A Celestial Archon of the Wynid Royal House overseeing the Crown Dominion’s interests. (c10) Accepts the suggestion of his supervisor, Wynidʼs chief archon, Gahiji-Laurent, to move his mindline on, becoming Makaio-Faraji.&lt;br /&gt;
&lt;br /&gt;
; Makaio-Faraji&lt;br /&gt;
: (c10) A Celestial Archon who inherits Makaio-Yalboʼs mindline. (c27) Is assassinated by a concluder at the Roundhouse Mansion on Gondiar while speaking with Terence. (c25) Has sons Neusch and Soltz.&lt;br /&gt;
&lt;br /&gt;
; Malquilvo-Beaumont, Lord&lt;br /&gt;
: (c15) Accuses Thyra of murdering his daughter Valeri and Ualana-Lyonʼs daughter Delfina during the Second Trial. Helena-Chione immediately executes him upon reading Thyraʼs memories and finding no evidence of foul play.&lt;br /&gt;
&lt;br /&gt;
; Marchioness&lt;br /&gt;
: (c0; a.k.a. &#039;&#039;&#039;Mary Kathleen Jalgori-Tobu&#039;&#039;&#039;) 43rd Marchioness of Santa Rosa. Finnʼs mother. (c6) Approves the sale of Finnʼs Hafnir to Josias and his people. (c29) Killed in a missile strike during General Avoneʼs takeover of Gondiar.&lt;br /&gt;
&lt;br /&gt;
; Medusa&lt;br /&gt;
: (c?) Subordinate of Marcellu. (c?) Recruited by archon Sahdin (?) after Marcellu is assassinated. (c?) Captured by Terence after bombing near High Rosa. (c?) Hidden from Avone by Terence as coma patient in Santa Rosa hospice.&lt;br /&gt;
&lt;br /&gt;
; Moaksha&lt;br /&gt;
: (c3) A race engineered as biological memory storage. Have bodies resembling centaurs with 5 lower limbs and a humanoid torso and arms at the front. Produce the chemical &#039;&#039;rekaul&#039;&#039; which is valued for its ability to enhance memories when consumed.&lt;br /&gt;
&lt;br /&gt;
; Neusch&lt;br /&gt;
: (c?) Son of Makaio-Faraji. (c?) Does not receive Makaio&#039;s mind line due to Makaio&#039;s assassination on Gondiar. (c30) Is in cahoots with Jolav-Dabny and Gahiji-Calder and present on the Kelowan system. Is assigned to assist Clavissa if she requires help while spying on Thyra.&lt;br /&gt;
&lt;br /&gt;
; Olomo&lt;br /&gt;
: (c1) An Archon of the Heresy Dominion who secretly informs Makaio‑Yalbo about the existence of Dolod and its trajectory towards Kelowan.&lt;br /&gt;
&lt;br /&gt;
; Otylia&lt;br /&gt;
: (c1) Finn’s twin sister who practiced sculpting livestone with him during childhood. (c12) Turns Okkwell Manor into a Gath sanctuary. Finn takes her suggestion to use Gath labor to maintain the &#039;&#039;Diligent&#039;&#039; after most of the human crew settle on Hafnir.&lt;br /&gt;
&lt;br /&gt;
; Oujanya &lt;br /&gt;
: (c21) Princess congregant for Helena-Chione. (c23) Mentally dominated by Helena-Thyra into changing her career track from economics student to Navy officer. (c30) Accompanies Helena-Thyra as she leads the unified Imperial Navy.&lt;br /&gt;
&lt;br /&gt;
; Pablo&lt;br /&gt;
: (c12) A Gath who Otylia takes in after being beaten by their employes for not participating in a cage fight. (c33) Hears Ellie scream while working on plumbing on the &#039;&#039;Diligent&#039;&#039;. Causes Ellie to question her own memory.&lt;br /&gt;
&lt;br /&gt;
; Radwarno-Werkas&lt;br /&gt;
: (c33) Commander of Empress Carolienʼs Twenty-Third Squadron assigned to escort Queen Helena-Thyraʼs Royal Fleet.&lt;br /&gt;
&lt;br /&gt;
; Serrilda-Kroja, Admiral&lt;br /&gt;
: (c31) An admiral who accompanies Helena-Thyra on the &#039;&#039;Dracaenae&#039;&#039; as she leads her Royal Fleet fleet from Wynid to Kelowan.&lt;br /&gt;
&lt;br /&gt;
; Soltz&lt;br /&gt;
: (c25) A son of Makaio-Faraji and brother to Neusch.&lt;br /&gt;
&lt;br /&gt;
; Stanvar8&lt;br /&gt;
: (c?) A criminal organization of Santa Rosa. (c?) Gutted after Terence forced by the governor of Gondiar to divulge all his archon intelligence network which includes sources within Stanvar8 following the bombing near High Rosa. (c30) Terence explores the dead organization&#039;s headquarters near the Dark Paradise club of the Haywood Block on Oldmixon Avenue in Santa Rosa.&lt;br /&gt;
&lt;br /&gt;
; Stethos-Remi&lt;br /&gt;
: Court datamaster for Helena-Thyra who accompanies her on the &#039;&#039;Dracaenae&#039;&#039; as she leads her Royal Fleet from Wynid to Kelowan.&lt;br /&gt;
&lt;br /&gt;
; Terence Wilson-Fletcher&lt;br /&gt;
: (c5) A Santa Rosa probationary constable. Recruited by archon agent Lenertz Mo, who is also his supervisor, to gather intelligence outside of law enforcement channels on the Q-I-X (Queen in Exile) movement which seeks to depose Queen Zuberi-Dulcina from power in the Kelowan system. (c7) Investigates an off-worlder named Dagon resulting in mysterious deaths of Stanvar8 gang members Younes and Colvin. (c27) Witnesses Makaio-Farajiʼs assassination by a concluder and receives the dying archonʼs personality as a rider.&lt;br /&gt;
&lt;br /&gt;
; Thyra&lt;br /&gt;
: (c4) Daughter of Helena-Chione and Bekket. (c15) Is accused by Lord Malquilvo-Beaumont of murdering congregant daughters Valeri and Delfina during the Second Trial. Privately recounts to her father, Bekket, how she turned bloodliens against Valeri, Delfina, and Clavissa during the Second Trial with her neural weaponry. (c21) Forcibly succeeds Helena-Chione with a neural weapon while they are alone in a steam room, becoming &#039;&#039;&#039;Helena-Thyra&#039;&#039;&#039;. (c23) replaces Gahiji-Calder with Ualana-Shoigu as chief archon.&lt;br /&gt;
&lt;br /&gt;
; Toše&lt;br /&gt;
: (c14) Murders Tabia with a concluder. (c29) Helps convince Josias to become a figurehead for human liberation movement on Gondiar.&lt;br /&gt;
&lt;br /&gt;
; Valeri&lt;br /&gt;
: (c15) Daughter of Lord Malquilvo-Beaumont. Killed during the Second Trial.&lt;br /&gt;
&lt;br /&gt;
; Vanilda&lt;br /&gt;
: (c19) Terence&#039;s daughter with Jimena and sister to Aljan. (c24) Confronts Terence about her support of the human liberation movement of Gondiar. (c30) Rejects fleeing Gondiar with Otylia in order to accompany her father, Terence, as he covertly pursues Liliana and Tose. Accompanies Terence and Jimena as they investigate Stanvar8&#039;s Dark Paradise for clues about Liliana, Tose, and the faction they support.&lt;br /&gt;
&lt;br /&gt;
; Younes&lt;br /&gt;
: (c7) Murdered in connection with Terenceʼs investigation of Dagon.&lt;br /&gt;
&lt;br /&gt;
; Zuberi-Dulcina, Queen&lt;br /&gt;
: (c2) The Queen of Kelowan who attempted the subvert the Imperial Celestials with neural weaponry and an evolution dogma. Defeated by the other five queens of the Crown Dominion seven thousand years ago who carved up the Kelowan system and executed Zuberiʼs family. The Accords among the Queens of the Crown Dominion were made following her execution. (c30) Led an evolution project opposed by the Crown Dominion.&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; Anoosha&lt;br /&gt;
: (c1) A planet within the Poseidon Nebula where Finn is dropped from a plane above its southern hemisphere. The planet hosts humans who mine ores and minerals. Governed by Queen Carolien of Verakʼs Grand Families. (c30) Destination of Otylia and Zelinda as they flee Gondiar aboard the &#039;&#039;Polkadav&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; Biniji&lt;br /&gt;
: (c15) A terraformed Eden moon of gas giant Golwaki in the Wynid system. Location of the Second Trial where Thyra competes.&lt;br /&gt;
&lt;br /&gt;
; Boksrock&lt;br /&gt;
: (c32) The innermost world of the Kelowan system.&lt;br /&gt;
&lt;br /&gt;
; Cherag Harbor&lt;br /&gt;
: (c31) An anchor asteroid atop the Lyonesse orbital tower on Lidon, Malakbel.&lt;br /&gt;
&lt;br /&gt;
; de Verya&lt;br /&gt;
: (c18) A gas giant in the Hoa Quinzu system where a Mara Yama fleet is refueling at that Finn and company notice while visiting Kajval.&lt;br /&gt;
&lt;br /&gt;
; Eunomia&lt;br /&gt;
: (c3) A Sol system asteroid where the &#039;&#039;Diligent&#039;&#039; was built and loaded.&lt;br /&gt;
&lt;br /&gt;
; Gondiar&lt;br /&gt;
: (c3) A solid giant low-density world with four times the surface area as Earth. Covered 45 percent by ocean. Population: 2 billion; demographics: mostly human, negligible Celestials. Finn owns 20 000 km&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; uninhabited land here which he promises to Josiah in exchange for the arkship &#039;&#039;Diligent&#039;&#039;. Gondiar produces agricultural products to feed to the planet Kelowan.&lt;br /&gt;
&lt;br /&gt;
; Hafnir&lt;br /&gt;
: (c3) Undeveloped coastal land on Gondiar owned by Finn. Finn offers the land in exchange for the arkship &#039;&#039;Diligent&#039;&#039;. (c6) With some negotiating by Josias, Finnʼs mother, the marchioness, approves the transaction.&lt;br /&gt;
&lt;br /&gt;
; HeSea&lt;br /&gt;
: (c1) A half–light-year diameter helium‑3 cloud within the Pillar of Zeus Nebula. Created long ago after a macroplanet composed of helium-3 mysteriously underwent a mini-nova.&lt;br /&gt;
&lt;br /&gt;
; Hoa Quinzu&lt;br /&gt;
: (c18) A system of the Ratarajan Dominion, home of the reclusive Ratarajan Celestials. Contains three habitable planets. One planet, Kajval, is the destination for Finn and Gyvoy for securing a Celestial dropship. Contains a Mara Yama fleet refueling at the gas giant de Verya.&lt;br /&gt;
&lt;br /&gt;
; JK67b&lt;br /&gt;
: (c1) A star system of the Gomatu Celstials undergoing a Dyson sphere megastructure construction. Was the destination of Dolod until it changed course 7 000 years ago for the Kelowan star system instead.&lt;br /&gt;
&lt;br /&gt;
; Kajval&lt;br /&gt;
: (c18) A world in the Hoa Quinzu system wrecked by a Crystal Gun. Finn, Gyvoy, Ellie, and company retrieve a Celestial dropship but suffer heavy losses due to saberstones.&lt;br /&gt;
&lt;br /&gt;
; Kelowan, system&lt;br /&gt;
: (c1) A star system that is the capital of the Crown Dominion. Current destination for the iron exotic Dolod. (c3) The arrival location of the &#039;&#039;Diligent&#039;&#039; and its refugees from Sol led by Josias Aponi. (c31) Has a gas giant named Lapetiie 8.7 AU away from the systemʼs star.&lt;br /&gt;
&lt;br /&gt;
; Kelowan, planet&lt;br /&gt;
: (c2) A planet in the Kelowan system that hosts the capital of the Crown Dominion. (c3) Hosts estates of Grand Families. Imports food produced and exported from Gondiar rather than maintain a polluting agricultural industry.&lt;br /&gt;
&lt;br /&gt;
; Lapetiie&lt;br /&gt;
: (c31) A gas giant 8.7 AU from Kelowanʼs star.&lt;br /&gt;
&lt;br /&gt;
; Lidon&lt;br /&gt;
: (c2) A human-controlled planet in the Malakbel system. A destination Finn considers to travel to after leaving Gondiar.&lt;br /&gt;
&lt;br /&gt;
; Malakbel&lt;br /&gt;
: (c11) A white dwarf system. Its only habitable planet is Lidon. The star collapsed during the Formation War. Plasma streams from the unstable star and the surrounding planetary nebula occlude most space ship activity. Marcellu meets Sahdiah in an asteriod here.&lt;br /&gt;
&lt;br /&gt;
; Pana-Seok&lt;br /&gt;
: (c17) A city located on top of Anooshaʼs orbital tower.&lt;br /&gt;
&lt;br /&gt;
; Pillar of Zeus&lt;br /&gt;
: (c1) A nebula in the Centauri Cluster.&lt;br /&gt;
&lt;br /&gt;
; Poseidon Nebula&lt;br /&gt;
: (c1) A nebula visible in the skies of Anoosha.&lt;br /&gt;
&lt;br /&gt;
; Roundhouse Mansion&lt;br /&gt;
: (c27) Where Makaio-Faraji is assassinated by a concluder.&lt;br /&gt;
&lt;br /&gt;
; Tinaja&lt;br /&gt;
: (c1) A star system connected to the Kelowan system via a Gate of Heaven.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; &#039;&#039;Aeacus&#039;&#039;&lt;br /&gt;
: (c31) A ship on Gondiar Makaio-Faraji reserved for emergencies.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Arcadiaʼs Moon&#039;&#039;&lt;br /&gt;
: (c11) A ship captained by Andino. Is a geodesic sphere of trusses. (c31) Spotted by Neuce at Cherag Harbor, Lidon, Malakbel, while Neuce backtracked Tošeʼs journey from Gondiar, Kelowan. Neuce noticed &#039;&#039;Arcadiaʼs Moon&#039;&#039; traveled back to Gondiar disguised as the &#039;&#039;Infinite Totality&#039;&#039;, arriving shortly before General Avone-Valerio.&lt;br /&gt;
&lt;br /&gt;
; Archimedes Engine&lt;br /&gt;
: (c1) An Elohim device used to move planets.&lt;br /&gt;
&lt;br /&gt;
; Concluder&lt;br /&gt;
: (c14) A remnant era rifle. (c24) Terence learns Zikar provided Toše with a sensor array for augmenting his concluder long-range sniping capabilities. (c27) A concluder sniper assassinates archon Makaio-Faraji at the Governorʼs Roundhouse Mansion on Gondiar.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Cybeleʼs Eagle&#039;&#039;&lt;br /&gt;
: (c24) A ship bound for Lidon that Terence found Toše boarded three years ago. (c31) A ship Neuce believes Toše rode to Lidon.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Diligent&#039;&#039;&lt;br /&gt;
: (c3) The arkship that carried Josias and his people from the Sol system to the Kelowan system.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Dracaenae&#039;&#039;&lt;br /&gt;
: (c30) Imperial ship carrying Helena-Thyra as she leads her Royal Fleet.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Gansvoort&#039;&#039;&lt;br /&gt;
: (c31) A ship Neuce believed Toše used to fly to Lidon from Kelowan. Terence believes Liliana negotiated with this ship.&lt;br /&gt;
&lt;br /&gt;
; Helium-3&lt;br /&gt;
: (c1) A fusion fuel used in starships and fusion generators of the Centauri Cluster.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Infinite Totality&#039;&#039;&lt;br /&gt;
: (c31) A disguise for the &#039;&#039;Arcadiaʼs Moon&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Nethrus&#039;&#039;&lt;br /&gt;
: (c30) Imperial frigate selected by Helena-Thyra as fleet herald for her Royal Fleet.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Polkadav&#039;&#039;&lt;br /&gt;
: (c30) Ship in the Kelowan system that carries Otylia and Zelinda from High Rosa, Gondiar to Pana-Seok, Anoosha.&lt;br /&gt;
&lt;br /&gt;
; saberstones&lt;br /&gt;
: (c18) Round rolling machines resembling stones on Kajval that eat armor and flesh.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;Starlightʼs Shore&#039;&#039;&lt;br /&gt;
: (c30) An Enfoe Dynasty starship. A fast courier with limited cargo capacity.&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
&lt;br /&gt;
====Chapters 0-9====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Chapter summaries (c0-9)&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| c0&lt;br /&gt;
| Introduction&lt;br /&gt;
40 000 years ago, humans created arkships and departed Earth. The initial arkships that arrived at the Centauri Cluster settled it and expanded into Celestial civilization. Subsequent arkships continue to arrive and their relatively primitive peoples are redirected towards protected irrelevant worlds.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| POV Finn: Finn is bound and cast out from a plane above the Camurdy Mountains of the planet Anoosha. A rescue drone prevents a fatal landing. Ellie finds Finn and verifies he is human. Finn identifies as a Uranic human. Ellie cuts him down from a tree, performs first aid, then hobbles with him to her camp with Josias Aponi near their crashed lander. Hypothermic, Finn has Ellie drag him to a livestone outcrop which he shapes into a warm indoor habitat. Finn loses consciousness.&lt;br /&gt;
&lt;br /&gt;
POV Makaio-Yalbo: Archon of the Now and Forever Queen of Wynid, Makaio-Yalbo and his future mindline vessel, Faraji, meet with Archon of the Heresy Dominion, Olomo. Olomo tells Makaio-Yalbo that his faction discovered an iron exotic gas giant traveling through the Poseidon Nebula. Olomo explains the iron exotic, presumably launched during the Remnant era by the Elohim, was originally traveling towards JK67b and the Gomatu Celstialsʼs Dyson sphere under construction there. Olomo says his faction has named the planet Dolod. However, 7 000 years ago, the gas giantʼs Archimedes Engine changed course near a brown dwarf of the Pillar of Zeus so the new destination is Kelowan, capital of the Crown Dominion. Makaio-Yalbo and Olomo speculate on the economic implications of harvesting cheap iron from Dolod and whether the Archimedes Engine stops the planet or not at Kelowan.&lt;br /&gt;
| Finn, Ellie, Josiah, Makaio-Yalbo, Faraji, Olomo&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| POV Finn: Finn accepts a job to attack Quinitai politicians. Finn sleeps with Liliana, leader of the combat operation. Finn is trapped by xeefoam. Finn is released and finds Liliana was a double-agent for Quinitai security. Liliana chooses to banish Finn to a remote location instead of killing him.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Finn wakes up. Josiah explains his origins from the Sol system; Josiah is the leader of the arkship &#039;&#039;Diligent&#039;&#039; which had initially traveled in the opposite direction of the Centauri Cluster when they received the Green Worlds signal. Finn offers Josiah land on Gondiar for &#039;&#039;Diligent&#039;&#039; settlers to colonize in exchange for the &#039;&#039;Diligent&#039;&#039; itself.  Finn, Josiah, and Ellie discover a Moaksha rekaul harvesting operation. They infiltrate the drug trafficker castle and liberate the Moaksha captives. They travel away in a skimmerfoil Finn captures.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Helena-Chione experiences an anomalous pregnancy of only a single egg, her daughter Thyra.&lt;br /&gt;
| Helena, Bekket&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Constable Terence is recruited to a clandestine investigation of human rebels against Celestial power.&lt;br /&gt;
| Terence, Younes&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Finn, Ellie, and Josias travel from Anoosha to Santa Rosa, Kelowan. Josias identifies Uramics was changelings, offending Finn. Terence escorts Finn and company to his mother&#039;s palace. Finn reünites with his twin, Otellia (?). Otellia brags about using Finn&#039;s money for changeling philanthropy. Finn presents Josias and Ellie to his mother. Josias reveals the &#039;&#039;Diligent&#039;&#039;, like all ark ships, uses an entropy drive. Josias offers to commercially develop Finn&#039;s la&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=User:Baltakatei/Sandbox&amp;diff=198219</id>
		<title>User:Baltakatei/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=User:Baltakatei/Sandbox&amp;diff=198219"/>
		<updated>2026-06-18T22:26:42Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sandboxes==&lt;br /&gt;
* [[User:Baltakatei/Sandbox/Journal templates]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;gt;memory file&amp;amp;lt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Sb&amp;diff=198218</id>
		<title>Sb</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Sb&amp;diff=198218"/>
		<updated>2026-06-18T22:26:22Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Changed redirect target from User:Baltakatei/sandbox to User:Baltakatei/Sandbox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User:Baltakatei/Sandbox]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Sb&amp;diff=198217</id>
		<title>Sb</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Sb&amp;diff=198217"/>
		<updated>2026-06-18T22:25:38Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Redirected page to User:Baltakatei/sandbox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User:Baltakatei/sandbox]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Exodus:_The_Helium_Sea&amp;diff=198216</id>
		<title>Exodus: The Helium Sea</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Exodus:_The_Helium_Sea&amp;diff=198216"/>
		<updated>2026-06-17T09:12:11Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Exodus: The Helium Sea&amp;#039;&amp;#039;&amp;#039; is a science fiction novel by Peter F. Hamilton to the unreleased Archetype Entertainment video game &amp;#039;&amp;#039;Exodus (2027 video g...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Exodus: The Helium Sea&#039;&#039;&#039; is a [[science fiction]] [[novel]] by [[Peter F. Hamilton]] to the unreleased [[Archetype Entertainment]] [[video game]] &#039;&#039;[[Exodus (2027 video game)|Exodus]]&#039;&#039;. It is the sequel to &#039;&#039;[[Exodus: The Archimedes Engine]]&#039;&#039; ([[2024]]). {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
===People===&lt;br /&gt;
; Dagon&lt;br /&gt;
: (b2c0) A spawn sibling of Liliana. Colonel and a commander of Zuberi&#039;s Royal Guard. Also received genome edits. &lt;br /&gt;
&lt;br /&gt;
; Iuntin-Ky&lt;br /&gt;
: (b2c0) Chief Archon of Queen Zuberi for millennia.&lt;br /&gt;
&lt;br /&gt;
; Liliana&lt;br /&gt;
: (b2c0) An ex-Princess of Zuberi and a scientist who helped invent and deploy mind dominating technologies to consolidate Queen Zuberi&#039;s control. Modified the genomes of Princess Khepri and her less fortunate sisters en vivo. &lt;br /&gt;
&lt;br /&gt;
; Mara Yama&lt;br /&gt;
: (b2c0) A nomadic Celestial people. Their bodies can take on a zero-gravity form and a combat terrestrial form.&lt;br /&gt;
&lt;br /&gt;
; Zuberi-Dulcina&lt;br /&gt;
: (b2c0) Monarch of Kelowan.&lt;br /&gt;
&lt;br /&gt;
===Places===&lt;br /&gt;
; Kelowan (system)&lt;br /&gt;
: (b2c0) A star system in the Centauri Cluster. Seat of government for Queen Zuberi.&lt;br /&gt;
&lt;br /&gt;
; Tinaja (system)&lt;br /&gt;
: (b2c0) A star system connected to the Kelowan system via a Gate of Heaven.&lt;br /&gt;
&lt;br /&gt;
===Things===&lt;br /&gt;
; Accords&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Evolution Project&lt;br /&gt;
: (b2c0) An initiative by Queen Zuberi to modify the biology of her dynasty to achieve immortality and power to conquer the Elohim. Involved inventing neural compulsion.&lt;br /&gt;
&lt;br /&gt;
; live stone &lt;br /&gt;
: (b2c0) A passively growing building material that responds to Celestial neural commands. {{bkc|[[2026-06-17]]: See the buildings of Makathran (?) in Hamilton&#039;s earlier [[Commonwealth Saga]] novel &#039;&#039;[[The Evolutionary Void]]&#039;&#039;. }}&lt;br /&gt;
&lt;br /&gt;
===Narrative===&lt;br /&gt;
====Chapters 0-9====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Chapter summaries (c0-9)&lt;br /&gt;
|-&lt;br /&gt;
! Chapter&lt;br /&gt;
! Title&lt;br /&gt;
! Description&lt;br /&gt;
! Characters&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| Introduction&lt;br /&gt;
| 40 000 years ago, humans created arkships and departed Earth. The initial arkships that arrived at the Centauri Cluster settled it and expanded into Celestial civilization. Subsequent arkships continue to arrive and their relatively primitive peoples are redirected towards protected irrelevant worlds.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Prelude: The First Fall of Kelowan&lt;br /&gt;
| &lt;br /&gt;
| POV Liliana: Warships of the other 5 Queens of the Dominion descend upon all 13 habitable planets of the Kelowan system in order to sack Queen Zuberi-Dulcina and her dynasty. Liliana reflects that she is scheduled for execution by the invaders due to her status as ex-Princess to Zuberi. Liliana inspects a Mara Yama captured about a decade ago and kept in free-fall form. Liliana completes a DNA rewrite of Princess Khepri, granting her great physical power and the amortality as Zuberi&#039;s final vessel. Zuberi arrives on her carriage constructed of melded bodies of political dissidents. A brief description of Duchess Immalan who protested against Zuberi. A brief history of Zuberi and Liliana&#039;s schemes to deploy mind-dominating technologies to improve their own biology to compete with and overtake the Elohim. Zuberi uses a taboo technique to copy, not transfer, her mind into Kepri. Liliana oversees the literal liquidation of the captive Maru Yama. Zuberi, Khepri, Liliana, and Colonel Dagon all evacuate the palace. Zuberi departs separately in her flesh carriage. Liliana, Dagon, and Iuntin depart with guards and the unconscious Khepri to a monorail station 2000 km away. Dagon informs Liliana of the plan to fight the Accord Armada. They board a stealth spaceplane bound for the nondescript freighter &#039;&#039;Morieux&#039;&#039;.  The Kelowan Navy breaks stealth and engages the Accord Navy as the &#039;&#039;Morieux&#039;&#039; departs towards the Tinaja Gate of Heaven.&lt;br /&gt;
| Liliana, Zuberi-Dulcina, Khepri, Dagon, Iuntin-Ky&lt;br /&gt;
|-&lt;br /&gt;
| c1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Gthumb&amp;diff=198215</id>
		<title>Gthumb</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Gthumb&amp;diff=198215"/>
		<updated>2026-06-16T23:29:28Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;gThumb&amp;#039;&amp;#039;&amp;#039; is a FOSS image viewer designed for GNOME.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats==  ==Cu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;gThumb&#039;&#039;&#039; is a [[FOSS]] [[image viewer]] designed for [[GNOME]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==Custom Commands==&lt;br /&gt;
These are custom commands and shortcuts.&lt;br /&gt;
&lt;br /&gt;
; [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/develop/user/gthumb/rmall.org?ref_type=heads rmall]&lt;br /&gt;
: ([[BK-2020-03]]) Remove a file and adjacent sidecar files to a &amp;lt;code&amp;gt;.trash&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
; [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/develop/user/gthumb/keep.org?ref_type=heads keep]&lt;br /&gt;
: ([[BK-2020-03]]) Preserve a file by moving it to a &amp;lt;code&amp;gt;keep&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=United_States_Department_of_Justice&amp;diff=198214</id>
		<title>United States Department of Justice</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=United_States_Department_of_Justice&amp;diff=198214"/>
		<updated>2026-06-15T18:37:54Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; The &amp;#039;&amp;#039;&amp;#039;United States Department of Justice&amp;#039;&amp;#039;&amp;#039; is the federal executive department responsible for enforcing Law of the Unite...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The &#039;&#039;&#039;United States Department of Justice&#039;&#039;&#039; is the [[United States federal executive departments|federal executive department]] responsible for enforcing [[Law of the United States|federal law]], prosecuting [[federal crimes]], and representing the [[United States]] in legal matters. It is led by the [[United States Attorney General]] who is appointed by the [[United States President|President]] and confirmed by the [[United States Senate|Senate]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
*[[2026-06]]: [[US DOJ]] approves [[Paramount]]&#039;s 111 billion USD acquisition of [[Warner Bros.]]. &amp;lt;ref name=&amp;quot;demnow_20260615_paramount-acquires-wb&amp;quot;&amp;gt;[[Amy Goodman]]; [[Craig Aaron]] (guest).  “[https://www.democracynow.org/2026/6/15/paramount_warner_bros_merger_david_ellison DOJ Approves Paramount-Warner Bros. Merger Amid Fears Trump Allies Will Tighten Grip on Media]”.  &#039;&#039;[[democracynow.org]]&#039;&#039;.  Accessed [[2026-06-15]].  “The Trump administration has approved [[Paramount]]’s $111 billion bid to acquire [[Warner Bros. Discovery]]. On Friday, the [[US DOJ|Justice Department]]’s Antitrust Division said that it saw no evidence that the media megamerger would harm consumers, writing instead the deal would, quote, “increase competition across the media and entertainment ecosystem,” unquote. If completed, the merger would consolidate two major movie studios, two top streaming services, and news outlets [[CNN]] and [[CBS News]], as well as [[HBO]] — all under the control of the [[Ellison family]]. Paramount’s biggest shareholder is the billionaire [[Larry Ellison]], a close ally of [[Donald Trump|Trump]]. Paramount’s CEO is Ellison’s son, [[David Ellison]]. Last year, his company, [[Skydance Media|Skydance]], took control of Paramount, including [[CBS]]. Shortly after the [[Paramount-Skydance merger]] was approved, Ellison installed the right-wing journalist [[Bari Weiss]] as editor-in-chief of CBS News. And we all know what happened next: the gutting of CBS’s premier news investigative hour, [[60 Minutes]], where the latest casualty was [[Scott Pelley]], who was just recently fired.”  &amp;lt;/ref&amp;gt;&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Class_of_%2709_(franchise)&amp;diff=198213</id>
		<title>Class of &#039;09 (franchise)</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Class_of_%2709_(franchise)&amp;diff=198213"/>
		<updated>2026-06-11T18:23:28Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Class of &#039;09&#039;&#039;&#039; is a self-described “rejection simulator” in contrast to a [[dating simulator]], a class of [[visual novel]] that it resembles in most aspects except purpose: the [[video game]] explores the negative consequences of parental neglect and mismanagement of [[high school]]s in the [[United States]].&lt;br /&gt;
&lt;br /&gt;
The main character of the first game is Nicole, a teenager whom the player must guide through a gauntlet of hazards such as teacher [[pedophilia]], [[drug addiction]], [[teen drinking]], cult indoctrination ([[white nationalism]]), [[suicide]], [[self-harm]], [[stalking]], and [[rape]]. Overcoming the overwhelming odds stacked against her successful graduation and survival often requires the player to choose ruthlessly self-interested actions that empower Nicole to manipulate her world-be manipulators.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Class_of_%2709_(franchise)&amp;diff=198212</id>
		<title>Class of &#039;09 (franchise)</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Class_of_%2709_(franchise)&amp;diff=198212"/>
		<updated>2026-06-11T18:22:59Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Class of &amp;#039;09&amp;#039;&amp;#039;&amp;#039; is a self-described “reflection simulator” in contrast to a dating simulator, a class of visual novel that it resembles in most aspects except...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Class of &#039;09&#039;&#039;&#039; is a self-described “reflection simulator” in contrast to a [[dating simulator]], a class of [[visual novel]] that it resembles in most aspects except purpose: the [[video game]] explores the negative consequences of parental neglect and mismanagement of [[high school]]s in the [[United States]].&lt;br /&gt;
&lt;br /&gt;
The main character of the first game is Nicole, a teenager whom the player must guide through a gauntlet of hazards such as teacher [[pedophilia]], [[drug addiction]], [[teen drinking]], cult indoctrination ([[white nationalism]]), [[suicide]], [[self-harm]], [[stalking]], and [[rape]]. Overcoming the overwhelming odds stacked against her successful graduation and survival often requires the player to choose ruthlessly self-interested actions that empower Nicole to manipulate her world-be manipulators.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=2026-06&amp;diff=198211</id>
		<title>2026-06</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=2026-06&amp;diff=198211"/>
		<updated>2026-06-09T22:29:40Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: /* 2026-06-09 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Journal for [[2026]]-06. Preceded by [[2026-05]]. Followed by [[2026-07]]. &lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
&lt;br /&gt;
==Tasks==&lt;br /&gt;
&lt;br /&gt;
==2026-06-01==&lt;br /&gt;
2026-W23-1, 2026-152, Mon&lt;br /&gt;
&lt;br /&gt;
==2026-06-02==&lt;br /&gt;
2026-W23-2, 2026-153, Tue&lt;br /&gt;
&lt;br /&gt;
==2026-06-03==&lt;br /&gt;
2026-W23-3, 2026-154, Wed&lt;br /&gt;
&lt;br /&gt;
==2026-06-04==&lt;br /&gt;
2026-W23-4, 2026-155, Thu&lt;br /&gt;
&lt;br /&gt;
==2026-06-05==&lt;br /&gt;
2026-W23-5, 2026-156, Fri&lt;br /&gt;
&lt;br /&gt;
==2026-06-06==&lt;br /&gt;
2026-W23-6, 2026-157, Sat&lt;br /&gt;
&lt;br /&gt;
==2026-06-07==&lt;br /&gt;
2026-W23-7, 2026-158, Sun&lt;br /&gt;
&lt;br /&gt;
==2026-06-08==&lt;br /&gt;
2026-W24-1, 2026-159, Mon&lt;br /&gt;
&lt;br /&gt;
==2026-06-09==&lt;br /&gt;
2026-W24-2, 2026-160, Tue&lt;br /&gt;
&lt;br /&gt;
{{jel|tz=America/Los_Angeles}} Created [[:Template:je]] and [[:Template:jel]] for facilitating journal entry.&lt;br /&gt;
&lt;br /&gt;
==2026-06-10==&lt;br /&gt;
2026-W24-3, 2026-161, Wed&lt;br /&gt;
&lt;br /&gt;
==2026-06-11==&lt;br /&gt;
2026-W24-4, 2026-162, Thu&lt;br /&gt;
&lt;br /&gt;
==2026-06-12==&lt;br /&gt;
2026-W24-5, 2026-163, Fri&lt;br /&gt;
&lt;br /&gt;
==2026-06-13==&lt;br /&gt;
2026-W24-6, 2026-164, Sat&lt;br /&gt;
&lt;br /&gt;
==2026-06-14==&lt;br /&gt;
2026-W24-7, 2026-165, Sun&lt;br /&gt;
&lt;br /&gt;
==2026-06-15==&lt;br /&gt;
2026-W25-1, 2026-166, Mon&lt;br /&gt;
&lt;br /&gt;
==2026-06-16==&lt;br /&gt;
2026-W25-2, 2026-167, Tue&lt;br /&gt;
&lt;br /&gt;
==2026-06-17==&lt;br /&gt;
2026-W25-3, 2026-168, Wed&lt;br /&gt;
&lt;br /&gt;
==2026-06-18==&lt;br /&gt;
2026-W25-4, 2026-169, Thu&lt;br /&gt;
&lt;br /&gt;
==2026-06-19==&lt;br /&gt;
2026-W25-5, 2026-170, Fri&lt;br /&gt;
&lt;br /&gt;
==2026-06-20==&lt;br /&gt;
2026-W25-6, 2026-171, Sat&lt;br /&gt;
&lt;br /&gt;
==2026-06-21==&lt;br /&gt;
2026-W25-7, 2026-172, Sun&lt;br /&gt;
&lt;br /&gt;
==2026-06-22==&lt;br /&gt;
2026-W26-1, 2026-173, Mon&lt;br /&gt;
&lt;br /&gt;
==2026-06-23==&lt;br /&gt;
2026-W26-2, 2026-174, Tue&lt;br /&gt;
&lt;br /&gt;
==2026-06-24==&lt;br /&gt;
2026-W26-3, 2026-175, Wed&lt;br /&gt;
&lt;br /&gt;
==2026-06-25==&lt;br /&gt;
2026-W26-4, 2026-176, Thu&lt;br /&gt;
&lt;br /&gt;
==2026-06-26==&lt;br /&gt;
2026-W26-5, 2026-177, Fri&lt;br /&gt;
&lt;br /&gt;
==2026-06-27==&lt;br /&gt;
2026-W26-6, 2026-178, Sat&lt;br /&gt;
&lt;br /&gt;
==2026-06-28==&lt;br /&gt;
2026-W26-7, 2026-179, Sun&lt;br /&gt;
&lt;br /&gt;
==2026-06-29==&lt;br /&gt;
2026-W27-1, 2026-180, Mon&lt;br /&gt;
&lt;br /&gt;
==2026-06-30==&lt;br /&gt;
2026-W27-2, 2026-181, Tue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
==Ext. Links==&lt;br /&gt;
&lt;br /&gt;
[[Category:Journals by month]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Template:Jel&amp;diff=198210</id>
		<title>Template:Jel</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Template:Jel&amp;diff=198210"/>
		<updated>2026-06-09T22:28:28Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: v1.0.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This template renders a journal-entry line from an ISO 8601 local timestamp. It is normally written by [[:Template:je]] substitution, not by hand.&lt;br /&gt;
&lt;br /&gt;
==Template stats==&lt;br /&gt;
* Name: Template:jel&lt;br /&gt;
* Date created: [[2026-06-09]]T21:38+00&lt;br /&gt;
* Date modified: [[2026-06-09]]T22:12+00&lt;br /&gt;
* Version: 1.0.3&lt;br /&gt;
* Depends:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:ParserFunctions Extension:ParserFunctions]&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{jel|t=2026-07-05T14:19:19-07|1=Got onto plane at PDX.}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
renders as:&lt;br /&gt;
* &#039;&#039;&#039;14:19-07 (21:19+00)&#039;&#039;&#039;: Got onto plane at PDX.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; must be fixed-width ISO 8601 with seconds: &amp;lt;code&amp;gt;YYYY-MM-DDTHH:MM:SS±hh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;±hh:mm&amp;lt;/code&amp;gt;. An invalid &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; renders the raw value as an inline error marker.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[:Template:je]]&lt;br /&gt;
&lt;br /&gt;
TEMPLATE BEGINS BELOW:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;* &#039;&#039;&#039;&amp;lt;span title=&amp;quot;{{{t|}}}&amp;quot; style=&amp;quot;cursor:help; border-bottom:1px dotted;&amp;quot;&amp;gt;{{#iferror:{{#time:H:i|{{padleft:|16|{{{t|}}}}}}}{{#ifexpr:{{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}}&amp;lt;0|-|+}}{{#ifexpr:(abs({{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}}) mod 3600)&amp;gt;0|{{padleft:{{#expr:floor(abs({{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}})/3600)}}|2|0}}:{{padleft:{{#expr:floor((abs({{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}}) mod 3600)/60)}}|2|0}}|{{padleft:{{#expr:floor(abs({{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}})/3600)}}|2|0}}}} ({{#time:H:i|@{{#time:U|{{{t|}}}}}}}+00)|&#039;&#039;t={{{t|}}}?&#039;&#039;}}&amp;lt;/span&amp;gt;&#039;&#039;&#039;: {{{1|}}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Baltakatei templates]]&lt;br /&gt;
[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Template:Jel&amp;diff=198209</id>
		<title>Template:Jel</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Template:Jel&amp;diff=198209"/>
		<updated>2026-06-09T22:08:59Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot;This template renders a journal-entry line from an ISO 8601 local timestamp. It is normally written by :Template:je substitution, not by hand.  ==Template stats== * Name:...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This template renders a journal-entry line from an ISO 8601 local timestamp. It is normally written by [[:Template:je]] substitution, not by hand.&lt;br /&gt;
&lt;br /&gt;
==Template stats==&lt;br /&gt;
* Name: Template:jel&lt;br /&gt;
* Date created: [[2026-06-09]]T21:38+00&lt;br /&gt;
* Date modified: [[2026-06-09]]T21:55+00&lt;br /&gt;
* Version: 1.0.2&lt;br /&gt;
* Depends:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:ParserFunctions Extension:ParserFunctions]&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{jel|t=2026-07-05T14:19:19-07|1=Got onto plane at PDX.}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
renders as:&lt;br /&gt;
* &#039;&#039;&#039;14:19-07 (21:19+00)&#039;&#039;&#039;: Got onto plane at PDX.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; must be fixed-width ISO 8601 with seconds: &amp;lt;code&amp;gt;YYYY-MM-DDTHH:MM:SS±hh&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;±hh:mm&amp;lt;/code&amp;gt;. An invalid &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; renders the raw value as an inline error marker.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[:Template:je]]&lt;br /&gt;
&lt;br /&gt;
TEMPLATE BEGINS BELOW:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;* &#039;&#039;&#039;{{#iferror:{{#time:H:i|{{padleft:|16|{{{t|}}}}}}}{{#ifexpr:{{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}}&amp;lt;0|-|+}}{{#ifexpr:(abs({{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}}) mod 3600)&amp;gt;0|{{padleft:{{#expr:floor(abs({{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}})/3600)}}|2|0}}:{{padleft:{{#expr:floor((abs({{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}}) mod 3600)/60)}}|2|0}}|{{padleft:{{#expr:floor(abs({{#time:U|{{padleft:|19|{{{t|}}}}}}}-{{#time:U|{{{t|}}}}})/3600)}}|2|0}}}} ({{#time:H:i|@{{#time:U|{{{t|}}}}}}}+00)|&#039;&#039;t={{{t|}}}?&#039;&#039;}}&#039;&#039;&#039;: {{{1|}}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Baltakatei templates]]&lt;br /&gt;
[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Template:Je&amp;diff=198208</id>
		<title>Template:Je</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Template:Je&amp;diff=198208"/>
		<updated>2026-06-09T22:08:52Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot;This template bakes a journal-entry line into wikicode as a :Template:jel call carrying a full ISO 8601 local timestamp. Use only via substitution: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:j...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This template bakes a journal-entry line into wikicode as a [[:Template:jel]] call carrying a full ISO 8601 local timestamp. Use only via substitution: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:je|tz=America/Los_Angeles|1=foo}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Template stats==&lt;br /&gt;
* Name: Template:je&lt;br /&gt;
* Date created: [[2026-06-09]]T20:14+00&lt;br /&gt;
* Date modified: [[2026-06-09]]T21:30+00&lt;br /&gt;
* Version: 3.0.2&lt;br /&gt;
* Depends:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:ParserFunctions Extension:ParserFunctions]&lt;br /&gt;
** [[:Template:jel]] v1.0.2&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:je|tz=America/Los_Angeles|1=Got onto plane at PDX.}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
saves, e.g.:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{jel|t=2026-07-05T14:19:19-07|1=Got onto plane at PDX.}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tz&amp;lt;/code&amp;gt; accepts PHP timezone identifiers ([https://www.php.net/timezones list]). If omitted or invalid, &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt; falls back to UTC (&amp;lt;code&amp;gt;+00&amp;lt;/code&amp;gt;). Do not pass relative offsets like &amp;lt;code&amp;gt;-7 hours&amp;lt;/code&amp;gt;; the inversion arithmetic assumes identifier re-tagging semantics and a relative offset will bake the wrong sign.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[:Template:jel]]&lt;br /&gt;
&lt;br /&gt;
TEMPLATE BEGINS BELOW:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{jel|t={{safesubst:&amp;lt;noinclude /&amp;gt;#iferror:{{safesubst:&amp;lt;noinclude /&amp;gt;#time:Y-m-d\TH:i:s|@{{safesubst:&amp;lt;noinclude /&amp;gt;#expr:{{safesubst:&amp;lt;noinclude /&amp;gt;#time:U}}+(({{safesubst:&amp;lt;noinclude /&amp;gt;#time:U}}-{{safesubst:&amp;lt;noinclude /&amp;gt;#time:U|now {{{tz|UTC}}}}})/900 round 0)*900}}}}{{safesubst:&amp;lt;noinclude /&amp;gt;#ifexpr:(({{safesubst:&amp;lt;noinclude /&amp;gt;#time:U}}-{{safesubst:&amp;lt;noinclude /&amp;gt;#time:U|now {{{tz|UTC}}}}})/900 round 0)*900&amp;lt;0|-|+}}{{safesubst:&amp;lt;noinclude /&amp;gt;#ifexpr:(abs((({{safesubst:&amp;lt;noinclude /&amp;gt;#time:U}}-{{safesubst:&amp;lt;noinclude /&amp;gt;#time:U|now {{{tz|UTC}}}}})/900 round 0)*900) mod 3600)&amp;gt;0|{{safesubst:&amp;lt;noinclude /&amp;gt;padleft:{{safesubst:&amp;lt;noinclude /&amp;gt;#expr:floor(abs((({{safesubst:&amp;lt;noinclude /&amp;gt;#time:U}}-{{safesubst:&amp;lt;noinclude /&amp;gt;#time:U|now {{{tz|UTC}}}}})/900 round 0)*900)/3600)}}|2|0}}:{{safesubst:&amp;lt;noinclude /&amp;gt;padleft:{{safesubst:&amp;lt;noinclude /&amp;gt;#expr:floor((abs((({{safesubst:&amp;lt;noinclude /&amp;gt;#time:U}}-{{safesubst:&amp;lt;noinclude /&amp;gt;#time:U|now {{{tz|UTC}}}}})/900 round 0)*900) mod 3600)/60)}}|2|0}}|{{safesubst:&amp;lt;noinclude /&amp;gt;padleft:{{safesubst:&amp;lt;noinclude /&amp;gt;#expr:floor(abs((({{safesubst:&amp;lt;noinclude /&amp;gt;#time:U}}-{{safesubst:&amp;lt;noinclude /&amp;gt;#time:U|now {{{tz|UTC}}}}})/900 round 0)*900)/3600)}}|2|0}}}}|{{safesubst:&amp;lt;noinclude /&amp;gt;#time:Y-m-d\TH:i:s}}+00}}|1={{{1|}}}}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Baltakatei templates]]&lt;br /&gt;
[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Cryptonomicon&amp;diff=198207</id>
		<title>Cryptonomicon</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Cryptonomicon&amp;diff=198207"/>
		<updated>2026-06-01T19:50:31Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Cryptonomicon&amp;#039;&amp;#039;&amp;#039; is a 1999 speculative history novel by Neal Stephenson that discusses cryptography in the context of World War II and late 20th cent...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Cryptonomicon&#039;&#039;&#039; is a [[1999]] [[speculative history]] novel by [[Neal Stephenson]] that discusses [[cryptography]] in the context of [[World War II]] and late [[20th century]] economics.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
* Author: [[Neal Stephenson]]&lt;br /&gt;
* Publication date: [[1999]]&lt;br /&gt;
&lt;br /&gt;
==Quotes==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
The room contains a few dozen living human bodies, each one a big sack of guts and fluids so highly compressed that it will squirt for a few yards when pierced. Each one is built around an armature of 206 bones connected to each other by notoriously fault-prone joints that are given to obnoxious creaking, grinding, and popping noises when they are in other than pristine condition. This structure is draped with throbbing steak, inflated with clenching air sacks, and pierced by a Gordian sewer filled with burbling acid and compressed gas and squirt with vile enzymes and solvents produced by the many dark, gamy nuggets of genetically programmed meat strung along its length. Slugs of dissolving food are forced down this sloppy labyrinth by serialized convulsions, decaying into gas, liquid, and solid matter which must all be regularly vented to the outside world lest the owner go toxic and drop dead. Spherical, gel-packed cameras swivel in mucus-greased ball joints. Infinite phalanxes of cilia beat back invading particles, encapsulate them in goo for later disposal. In each body a centrally located muscle flails away at an eternal, circulating torrent of pressurized gravy. And yet, despite all of this, not one of these bodies makes a single sound at any time during the sultan’s speech. It is a marvel that can only be explained by the power of brain over body, and, in turn, by the power of cultural conditioning over the brain.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=The_Expanse_(novel_series)&amp;diff=198206</id>
		<title>The Expanse (novel series)</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=The_Expanse_(novel_series)&amp;diff=198206"/>
		<updated>2026-05-14T23:13:29Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;The Expanse&amp;#039;&amp;#039;&amp;#039; series is a set of science fiction books written under the pen name James S. A. Corey.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PA...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;The Expanse&#039;&#039;&#039; series is a set of [[science fiction]] books written under the pen name [[James S. A. Corey]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==Titles==&lt;br /&gt;
* &#039;&#039;[[Leviathan Wakes]]&#039;&#039; (2011)&lt;br /&gt;
* &#039;&#039;[[Caliban&#039;s War]]&#039;&#039; (2012)&lt;br /&gt;
* &#039;&#039;[[Abbadon&#039;s Gate]]&#039;&#039; (2013)&lt;br /&gt;
* &#039;&#039;[[Cibola Burn]]&#039;&#039; (2014)&lt;br /&gt;
* &#039;&#039;[[Nemesis Games]]&#039;&#039; (2015)&lt;br /&gt;
* &#039;&#039;[[Babylon&#039;s Ashes]]&#039;&#039; (2016)&lt;br /&gt;
* &#039;&#039;[[Persepolis Rising]]&#039;&#039; (2017)&lt;br /&gt;
* &#039;&#039;[[Tiamat&#039;s Wrath]]&#039;&#039; (2019)&lt;br /&gt;
* &#039;&#039;[[Leviathan Falls]]&#039;&#039; (2021)&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Mediawiki_notes&amp;diff=198205</id>
		<title>Mediawiki notes</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Mediawiki_notes&amp;diff=198205"/>
		<updated>2026-05-13T05:18:31Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: add command for exporting current XML snapshot of pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains notes for using [[Mediawiki]].    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==[[Emacs]] functions==&lt;br /&gt;
Name link to a subpage after subpage basename. (&amp;lt;code&amp;gt;[[../Chapter 1]]&amp;lt;/code&amp;gt; into &amp;lt;code&amp;gt;[[../Chapter 1|Chapter 1]]&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
/\(.+\)]]&lt;br /&gt;
/\1|\1]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Export/Import==&lt;br /&gt;
===Exporting===&lt;br /&gt;
To export the wikicode of a given article, one heavyweight method involves using the &amp;lt;code&amp;gt;maintenance/dumpBackup.php&amp;lt;/code&amp;gt; script to export an [[XML]] version of the target page, then parsing of the XML file with some program like [[grep]].&amp;lt;ref name=&amp;quot;mw_20230226_dumpbackup&amp;quot;&amp;gt;“[https://www.mediawiki.org/wiki/Manual:DumpBackup.php Manual:dumpBackup.php]”. ([[2023-02-26]]). &#039;&#039;mediawiki.org&#039;&#039;. Accessed [[2023-04-13]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Export an XML file containing the current state of a wiki into the user&#039;s &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
 php /var/lib/mediawiki/maintenance/run.php dumpBackup --current --filter=namespace:0 | xz -z &amp;gt; ~/my_wiki.xml.tar.xz&lt;br /&gt;
&lt;br /&gt;
A lightweight method for exporting wikicode of a single article involves using the Mediawiki Revisions API&amp;lt;ref name=&amp;quot;mw_20220720_apirevisions&amp;quot;&amp;gt;“[https://www.mediawiki.org/wiki/API:Revisions API:Revisions]”. ([[2022-07-20]]). &#039;&#039;mediawiki.org&#039;&#039;. Accessed [[2023-04-13]].&amp;lt;/ref&amp;gt; Command line tools such as [[curl]] may be used to authenticate via username an dpassword in order to obtain a session cookie; then the cookie may be used to authenticate an [[HTTP]] &#039;&#039;GET&#039;&#039; request requesting from a Mediawiki instance the wikicode contents of a single page.&lt;br /&gt;
&lt;br /&gt;
: An unverified [[ChatGPT-4]] procedure is described below;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
If your MediaWiki instance requires authentication, you can use the API with login credentials to fetch the wikicode of a page. You&#039;ll need to perform a login request to obtain a login token, then use that token in a second request to complete the login process. Finally, you can use the obtained session cookies to access the content of the page with authentication.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example using curl to perform these steps:&lt;br /&gt;
&lt;br /&gt;
1. Get a login token:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;pre style=&amp;quot;white-space: pre;&amp;gt;$ curl -c cookies.txt &amp;quot;https://your-wiki-url.example.org/w/api.php?action=query&amp;amp;meta=tokens&amp;amp;type=login&amp;amp;format=json&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Replace your-wiki-url.example.org with your wiki&#039;s domain. The cookies.txt file is used to store the session cookies.&lt;br /&gt;
&lt;br /&gt;
2. Extract the login token from the JSON response:&lt;br /&gt;
&lt;br /&gt;
: You can use a tool like jq to extract the login token from the JSON response:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;pre style=&amp;quot;white-space: pre;&amp;gt;$ login_token=$(curl -c cookies.txt &amp;quot;https://your-wiki-url.example.org/w/api.php?action=query&amp;amp;meta=tokens&amp;amp;type=login&amp;amp;format=json&amp;quot; | jq -r &#039;.query.tokens.logintoken&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Log in using your username, password, and the obtained login token:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;pre style=&amp;quot;white-space: pre;&amp;gt;$ curl -b cookies.txt -c cookies.txt -d &amp;quot;action=clientlogin&amp;amp;username=YOUR_USERNAME&amp;amp;password=YOUR_PASSWORD&amp;amp;loginreturnurl=http://your-wiki-url.example.org/&amp;amp;logintoken=$login_token&amp;amp;format=json&amp;quot; &amp;quot;https://your-wiki-url.example.org/w/api.php&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Replace YOUR_USERNAME and YOUR_PASSWORD with your MediaWiki account&#039;s username and password.&lt;br /&gt;
&lt;br /&gt;
4. Fetch the wikicode of a page with authentication:&lt;br /&gt;
&lt;br /&gt;
: Use the session cookies stored in cookies.txt to access the content of the page:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;pre style=&amp;quot;white-space: pre;&amp;gt;$ curl -b cookies.txt &amp;quot;https://your-wiki-url.example.org/w/api.php?action=query&amp;amp;prop=revisions&amp;amp;titles=Example_Page&amp;amp;rvprop=content&amp;amp;format=json&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Extract the wikicode content from the JSON response:&lt;br /&gt;
&lt;br /&gt;
: As before, you can use a tool like jq to extract the wikicode from the JSON response:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;pre style=&amp;quot;white-space: pre;&amp;gt;$ curl -b cookies.txt &amp;quot;https://your-wiki-url.example.org/w/api.php?action=query&amp;amp;prop=revisions&amp;amp;titles=Example_Page&amp;amp;rvprop=content&amp;amp;format=json&amp;quot; | jq -r &#039;.query.pages[].revisions[0][&amp;quot;*&amp;quot;]&#039; &amp;gt; example_page_wikicode.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This process allows you to authenticate with your MediaWiki instance and fetch the wikicode of a page, which can then be processed using your external script. After editing, you can import the modified content back into your MediaWiki installation using the API or other methods, like the importTextFiles.php script mentioned earlier.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Importing===&lt;br /&gt;
Import text files (see [[2022-09-01]] example).&amp;lt;ref name=&amp;quot;mw_20210503_importtextfiles&amp;quot;&amp;gt;“[https://www.mediawiki.org/wiki/Manual:ImportTextFiles.php Manual:importTextFiles.php]”. ([[2021-05-03]]). &#039;&#039;mediawiki.com&#039;&#039;. Accessed [[2023-04-01]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ cd /var/lib/mediawiki/maintenance  # NOTE: May need to be `root` or `www-data`&lt;br /&gt;
 $ find ./wikicode/ -type f | parallel php importTextFiles.php -u DebianUser --bot &#039;{}&#039;&lt;br /&gt;
&lt;br /&gt;
: Note: do not use [[Combining character|combining]] [[diacritical marks]] in article names. For example, use “á” (U+00E1) instead of “á” (U+0061 U+0301).&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===Labeled Section Transclusion===&lt;br /&gt;
Mark a selection for transclusion.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;section begin=&amp;quot;chapter1&amp;quot; /&amp;gt;this is a chapter 1&amp;lt;section end=&amp;quot;chapter1&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transclude a marked selection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{#lst:articleX|chapter1}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transclude a section by section title.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{#lsth:articleX|sectionX}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transclude a marked selection in a subpage.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{#lst:{{PAGENAME}}/subpageX|chapter1}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transclude a section by section title in a subpage.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{#lsth:{{PAGENAME}}/subpageX|sectionX}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Formatting==&lt;br /&gt;
See the [[Mediawiki]] reference pages:&lt;br /&gt;
* https://www.mediawiki.org/wiki/Help:Formatting&lt;br /&gt;
* https://en.wikipedia.org/wiki/Help:Advanced_text_formatting&lt;br /&gt;
&lt;br /&gt;
==Small-caps==&lt;br /&gt;
Basic.{{bkc|[[2025-03-19]]: See [https://www.mediawiki.org/wiki/Help:Wikitext_examples link]. }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-variant:small-caps;&amp;quot;&amp;gt;John Doe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-variant:small-caps;&amp;quot;&amp;gt;John Doe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Combine with other &amp;lt;code&amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;lt;/code&amp;gt; styles.&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-variant:small-caps; text-align: right;&amp;quot;&amp;gt;John Doe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-variant:small-caps; text-align: right;&amp;quot;&amp;gt;John Doe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Collapsible elements===&lt;br /&gt;
A simple collapsible text box.&amp;lt;ref group=cmt&amp;gt;{{bk}}: [[2024-07-07]]: See [https://www.mediawiki.org/wiki/Manual:Collapsible_elements#Simple link]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;width:400px; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
This text is collapsible. {{Lorem}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fixed-width===&lt;br /&gt;
Make short strings fixed-width with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tags. For example, &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; becomes:&lt;br /&gt;
: &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make glyphs in multiple lines fixed-width by inserting a single space before each line.&lt;br /&gt;
 ....o.......o.......o....&lt;br /&gt;
 ..o...o...o...o...o...o..&lt;br /&gt;
 o.......o.......o.......o&lt;br /&gt;
 ..o...o...o...o...o...o..&lt;br /&gt;
 ....o.......o.......o....&lt;br /&gt;
&lt;br /&gt;
Disable wrap of fixed-width lines via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;foo&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tags.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
 $ printf &amp;quot;===================================================================================================================================&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fonts===&lt;br /&gt;
For SVG fonts supported on [[Wikimedia Commons]] servers, see [https://commons.wikimedia.org/wiki/Help:SVG/wuu#Fonts,_text this page].&lt;br /&gt;
&lt;br /&gt;
Increase size with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tags.&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;&amp;lt;span style=&amp;quot;font-size:200%&amp;quot;&amp;gt;Ł&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:: Renders as: &amp;lt;span style=&amp;quot;font-size:200%&amp;quot;&amp;gt;Ł&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Headings===&lt;br /&gt;
====Table of Contents====&lt;br /&gt;
Inhibit the table of contents section by inserting &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__NOTOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; anywhere on the page.&amp;lt;ref name=&amp;quot;mw_2023_toc&amp;quot;&amp;gt;“[https://www.mediawiki.org/wiki/Manual:Table_of_contents Manual:Table of contents]”.  (n.d.).  &#039;&#039;[[mediawiki.org]]&#039;&#039;.  Accessed [[2023-07-19]].  [https://web.archive.org/web/20230624130917/https://www.mediawiki.org/wiki/Manual:Table_of_contents Archived] on [[2023-06-24]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Manually place the table of contents by inserting &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__TOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the desired location on the page.&amp;lt;ref name=&amp;quot;mw_2023_toc&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Force the creation of a table of contents despite a low count of headings by inserting &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;__FORCETOC__&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;mw_2023_toc&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HTML===&lt;br /&gt;
&#039;&#039;See [[HTML notes]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Since Mediawiki is based on [[HTML]], some characters may not appear correctly if pasted directly into wikicode. [[Ampersand]] (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;amp;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) is one of those.&amp;lt;ref name=&amp;quot;whatwg_20230720_htmlnamedcharrefs&amp;quot;&amp;gt;“[https://html.spec.whatwg.org/multipage/named-characters.html Named character references]”.  ([[2023-07-20]]).  &#039;&#039;[[WHATWG]]&#039;&#039;.  Accessed [[2023-07-23]].  [https://web.archive.org/web/20230717122858/https://html.spec.whatwg.org/multipage/named-characters.html Archived] from the original on [[2023-07-17]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To insert a literal ampersand, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;amp;amp;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (ampersand, latin small letter a, latin small letter m, latin small letter p, semicolon).&lt;br /&gt;
&lt;br /&gt;
To insert literal less-than and greater-than symbols, (such as within a &amp;lt;code&amp;gt;&amp;amp;lt;pre&amp;amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;lt;code&amp;amp;gt;&amp;lt;/code&amp;gt; tag), use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;amp;lt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
To insert square brackets, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;amp;lbrack;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;amp;rbrack;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#91;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#93;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To insert a literal vertical bar, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;amp;verbar;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;&amp;amp;verbar;&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;lt;nowiki&amp;amp;gt;|&amp;amp;lt;/nowiki&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; also works.&lt;br /&gt;
&lt;br /&gt;
To insert an anchor tag, use [[:Template:anchor]] or &amp;lt;code&amp;gt;&amp;amp;lt;span id=&amp;quot;NameOfAnchorHere&amp;quot;&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/code&amp;gt; (e.g. So tacking &amp;lt;code&amp;gt;#NameOfAnchorHere&amp;lt;/code&amp;gt; to the end of a URL jumps a web browser to the anchor tag.).&lt;br /&gt;
&lt;br /&gt;
===Lists===&lt;br /&gt;
Create nested lists with different format&amp;lt;ref group=fn&amp;gt;See https://www.mediawiki.org/wiki/Help:Lists#Per_list .&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; By the law of force&lt;br /&gt;
  &amp;lt;ol style=&amp;quot;list-style-type:lower-alpha&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt; By surrender or capture in war &amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt; By being the victim of raiding or kidnapping &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
 &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; As legal punishment for crimes (including debt) &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; Through paternal authority (a father’s sale of his children) &amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; Through the voluntary sale of one’s self4&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ordered lists can have custom numberings assigned.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Part 1&lt;br /&gt;
    &amp;lt;ol start=&amp;quot;1&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Satu&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Dua&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Tiga&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;  &lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Part 2&lt;br /&gt;
    &amp;lt;ol start=&amp;quot;4&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Empat&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;    &lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This renders as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Part 1&lt;br /&gt;
    &amp;lt;ol start=&amp;quot;1&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Satu&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Dua&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Tiga&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;  &lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Part 2&lt;br /&gt;
    &amp;lt;ol start=&amp;quot;4&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Empat&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;    &lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create multiple columns of a list.&amp;lt;ref name=&amp;quot;mw_20230325_multicolumnlist&amp;quot;&amp;gt;“[https://www.mediawiki.org/wiki/Help:Lists#Multi-column_lists ]”.  ([[2023-03-25]]).  &#039;&#039;[[mediawiki.org]]&#039;&#039;.  Accessed [[2023-07-16]].  [https://web.archive.org/web/20230705063041/https://www.mediawiki.org/wiki/Help:Lists#Multi-column_lists Archived] from the original on [[2023-07-05]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;div style=&amp;quot;column-count:2&amp;quot;&amp;amp;gt;&lt;br /&gt;
 * apple&lt;br /&gt;
 * carpet&lt;br /&gt;
 * geography&lt;br /&gt;
 * mountain&lt;br /&gt;
 * nowhere&lt;br /&gt;
 * postage&lt;br /&gt;
 * ragged&lt;br /&gt;
 * toast&lt;br /&gt;
 &amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
: yields:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count:2&amp;quot;&amp;gt;&lt;br /&gt;
* apple&lt;br /&gt;
* carpet&lt;br /&gt;
* geography&lt;br /&gt;
* mountain&lt;br /&gt;
* nowhere&lt;br /&gt;
* postage&lt;br /&gt;
* ragged&lt;br /&gt;
* toast&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Unicode===&lt;br /&gt;
&#039;&#039;See https://meta.wikimedia.org/wiki/Help:Special_characters &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Tables==&lt;br /&gt;
A basic table ([https://www.mediawiki.org/wiki/Help:Tables ref]):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! Header text !! Header text !! Header text&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A basic sortable table ([https://www.mediawiki.org/wiki/Help:Tables ref]):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! Header text !! Header text !! Header text&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A table with padding.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;&#039;&#039;AGLAIA&#039;&#039;&#039;&#039;&#039; || style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;&#039;&#039;BRILLIANCE&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;&#039;&#039;EUPHROSYNE&#039;&#039;&#039;&#039;&#039; || style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;&#039;&#039;JOY&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;&#039;&#039;THALIA&#039;&#039;&#039;&#039;&#039; || style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;&#039;&#039;BLOOM&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A collapsed table. ([https://www.mediawiki.org/wiki/Manual:Collapsible_elements ref])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pub. date&lt;br /&gt;
! Title&lt;br /&gt;
! Authors&lt;br /&gt;
! ISBN&lt;br /&gt;
|-&lt;br /&gt;
| [[2021-01-20]]&lt;br /&gt;
| [[#Selfcare]]&lt;br /&gt;
| [[Annalee Newitz]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A table with cells with different alignments.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:left;&amp;quot; | A&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:center;&amp;quot; | B&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:right;&amp;quot; | C&lt;br /&gt;
|- style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:left;&amp;quot; | D&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:center;&amp;quot; | E&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:right;&amp;quot; | F&lt;br /&gt;
|- style=&amp;quot;vertical-align:bottom;&amp;quot;&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:left;&amp;quot; | G&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:center;&amp;quot; | H&lt;br /&gt;
| style=&amp;quot;height:100px; width:100px; text-align:right;&amp;quot; | I&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A table with irregular merged rows and columns.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Table with merged rows and columns&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | r1-2,c1&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | r1-2,c2&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | r1-2,c3&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | r1,c4-5&lt;br /&gt;
|-&lt;br /&gt;
! r2,c4&lt;br /&gt;
! r2,c5&lt;br /&gt;
|-&lt;br /&gt;
| r3,c1&lt;br /&gt;
| r3,c2&lt;br /&gt;
| r3,c3&lt;br /&gt;
| r3,c4&lt;br /&gt;
| r3,c5&lt;br /&gt;
|-&lt;br /&gt;
| r4,c1&lt;br /&gt;
| r4,c2&lt;br /&gt;
| r4,c3&lt;br /&gt;
| r4,c4&lt;br /&gt;
| r4,c5&lt;br /&gt;
|-&lt;br /&gt;
| r5,c1&lt;br /&gt;
| r5,c2&lt;br /&gt;
| r5,c3&lt;br /&gt;
| r5,c4&lt;br /&gt;
| r5,c5&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Table with merged rows and columns&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | r1-2,c1&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | r1-2,c2&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | r1-2,c3&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | r1,c4-5&lt;br /&gt;
|-&lt;br /&gt;
! r2,c4&lt;br /&gt;
! r2,c5&lt;br /&gt;
|-&lt;br /&gt;
| r3,c1&lt;br /&gt;
| r3,c2&lt;br /&gt;
| r3,c3&lt;br /&gt;
| r3,c4&lt;br /&gt;
| r3,c5&lt;br /&gt;
|-&lt;br /&gt;
| r4,c1&lt;br /&gt;
| r4,c2&lt;br /&gt;
| r4,c3&lt;br /&gt;
| r4,c4&lt;br /&gt;
| r4,c5&lt;br /&gt;
|-&lt;br /&gt;
| r5,c1&lt;br /&gt;
| r5,c2&lt;br /&gt;
| r5,c3&lt;br /&gt;
| r5,c4&lt;br /&gt;
| r5,c5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Table with combined cells and columns&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ 6x6 table with irregular headers&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 colspan=2 | r1-2,c1-2&lt;br /&gt;
! colspan=4 | r1,c3-6&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 | r2,c3-4&lt;br /&gt;
! colspan=2 | r2,c5-6&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 | r3-4,c1&lt;br /&gt;
! rowspan=2 | r3-4,c2&lt;br /&gt;
! colspan=2 | r3,c3-4&lt;br /&gt;
! r3,c5&lt;br /&gt;
! r3,c6&lt;br /&gt;
|-&lt;br /&gt;
! r4,c3&lt;br /&gt;
! r4,c4&lt;br /&gt;
! r4,c5&lt;br /&gt;
! r4,c6&lt;br /&gt;
|-&lt;br /&gt;
| r5,c1&lt;br /&gt;
| r5,c2&lt;br /&gt;
| r5,c3&lt;br /&gt;
| r5,c4&lt;br /&gt;
| r5,c5&lt;br /&gt;
| r5,c6&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ 6x6 table with irregular headers&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 colspan=2 | r1-2,c1-2&lt;br /&gt;
! colspan=4 | r1,c3-6&lt;br /&gt;
|-&lt;br /&gt;
! colspan=2 | r2,c3-4&lt;br /&gt;
! colspan=2 | r2,c5-6&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 | r3-4,c1&lt;br /&gt;
! rowspan=2 | r3-4,c2&lt;br /&gt;
! colspan=2 | r3,c3-4&lt;br /&gt;
! r3,c5&lt;br /&gt;
! r3,c6&lt;br /&gt;
|-&lt;br /&gt;
! r4,c3&lt;br /&gt;
! r4,c4&lt;br /&gt;
! r4,c5&lt;br /&gt;
! r4,c6&lt;br /&gt;
|-&lt;br /&gt;
| r5,c1&lt;br /&gt;
| r5,c2&lt;br /&gt;
| r5,c3&lt;br /&gt;
| r5,c4&lt;br /&gt;
| r5,c5&lt;br /&gt;
| r5,c6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
===Transclusion===&lt;br /&gt;
&#039;&#039;See https://www.mediawiki.org/wiki/Help:Transclusion&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Substitution===&lt;br /&gt;
&#039;&#039;See https://www.mediawiki.org/wiki/Help:Substitution&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Another page may be substituted into another using a one-time template syntax that replaces the template with the target page.&amp;lt;ref name=&amp;quot;mw_20220410_substitution&amp;quot;&amp;gt;“[https://www.mediawiki.org/wiki/Help:Substitution Help:Substitution]”. ([[2022-04-10]]). &#039;&#039;mediawiki.org&#039;&#039;. Accessed [[2023-04-08]].&amp;lt;/ref&amp;gt; For example, by inserting the double curly-brace code snippet &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:FULLPAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, the wikicode of the article &amp;lt;code&amp;gt;FULLPAGENAME&amp;lt;/code&amp;gt; will be inserted in place of the snippet.&lt;br /&gt;
&lt;br /&gt;
When using [[Extension:ParserFunctions]] substitutions within an [[Extension:Cite]] &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ref&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag, one must use the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#tag:…}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; pattern. See [https://www.mediawiki.org/wiki/Help:Cite#Substitution_and_embedded_parser_functions link].&lt;br /&gt;
: The following in a Mediawiki template:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;ref group=cmt&amp;gt;Comment: {{{1|}}}&amp;lt;/ref&amp;gt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
: should instead be:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;onlyinclude&amp;gt;{{#tag:ref|Comment: {{{1|}}}|group=cmt}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Upgrading==&lt;br /&gt;
&#039;&#039;See https://www.mediawiki.org/wiki/Manual:Upgrading&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A mechanism for updating via a webUI exists at &amp;lt;code&amp;gt;/mw-config/&amp;lt;/code&amp;gt;. For example, if your wiki is at &amp;lt;/code&amp;gt;http://example.org/w/index.php&amp;lt;/code&amp;gt;, then navigate to &amp;lt;/code&amp;gt;http://example.org/w/mw-config/&amp;lt;/code&amp;gt;. &amp;lt;ref name=&amp;quot;mw_2023_upgrading&amp;quot;&amp;gt;“[https://www.mediawiki.org/wiki/Manual:Upgrading Manual:Upgrading]”. (n.d.). &#039;&#039;mediawiki.org&#039;&#039;. Accessed [[2023-06-13]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Special pages==&lt;br /&gt;
; [[MediaWiki:Copyright]]&lt;br /&gt;
: A wiki-specific page containing copyright information to be displayed in the footer of every page. See also: https://www.mediawiki.org/wiki/Manual:$wgRightsText&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[HTML notes]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Baltakatei%27s_Useful_CLI_Commands&amp;diff=198204</id>
		<title>Baltakatei&#039;s Useful CLI Commands</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Baltakatei%27s_Useful_CLI_Commands&amp;diff=198204"/>
		<updated>2026-05-12T02:35:30Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly [[Debian]] GNU/Linux command line interface commands.&lt;br /&gt;
&lt;br /&gt;
For [[Windows NT|Windows]], see [[Powershell notes]].    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
== Stats ==&lt;br /&gt;
* Author: [[Steven Baltakatei Sandoval]]&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
Baltakateiʼs most used command-line programs are (as of [[2026-05]]):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ {{Anchor|usage}}Baltakateiʼs CLI usage distribution&lt;br /&gt;
|-&lt;br /&gt;
! command !! count !! does what&lt;br /&gt;
|-&lt;br /&gt;
| [[#ls|ls]]&lt;br /&gt;
| 13000&lt;br /&gt;
| list directory contents&lt;br /&gt;
|-&lt;br /&gt;
| [[#cd|cd]]&lt;br /&gt;
| 9000&lt;br /&gt;
| change directory&lt;br /&gt;
|-&lt;br /&gt;
| exit&lt;br /&gt;
| 5600&lt;br /&gt;
| (built-in) close terminal window&lt;br /&gt;
|-&lt;br /&gt;
| [[#find|find]]&lt;br /&gt;
| 5100&lt;br /&gt;
| Search file system by file name, size, age, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[#emacs|emacs]]&lt;br /&gt;
| 2900&lt;br /&gt;
| Edit text files.&lt;br /&gt;
|-&lt;br /&gt;
| history&lt;br /&gt;
| 2300&lt;br /&gt;
| (built-in) View command history. Often searched via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$ history | grep&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#locate|locate]]&lt;br /&gt;
| 2200&lt;br /&gt;
| Search file system by file name via daily index for speed.&lt;br /&gt;
|-&lt;br /&gt;
| [[#cat|cat]]&lt;br /&gt;
| 2000&lt;br /&gt;
| Concatenate text files. Often with command pipe line (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;cat | grep | sed&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| [[#grep|grep]]&lt;br /&gt;
| 1200&lt;br /&gt;
| Search file internals through [[regular expression]]s.&lt;br /&gt;
|-&lt;br /&gt;
| [[#mkdir|mkdir]]&lt;br /&gt;
| 1100&lt;br /&gt;
| Create directory.&lt;br /&gt;
|-&lt;br /&gt;
| [[#rm|rm]]&lt;br /&gt;
| 1100&lt;br /&gt;
| Delete file or directory.&lt;br /&gt;
|-&lt;br /&gt;
| [[#man|man]]&lt;br /&gt;
| 1100&lt;br /&gt;
| View manual for a commandʼs package (e.g. &amp;lt;code&amp;gt;man grep&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| while&lt;br /&gt;
| 1000&lt;br /&gt;
| (built-in) Initiate while loop&lt;br /&gt;
|-&lt;br /&gt;
| time&lt;br /&gt;
| 900&lt;br /&gt;
| Measure time used until a command completes. (shell keyword)&lt;br /&gt;
|-&lt;br /&gt;
| [[#mv|mv]]&lt;br /&gt;
| 800&lt;br /&gt;
| Move a file or directory.&lt;br /&gt;
|-&lt;br /&gt;
| echo&lt;br /&gt;
| 700&lt;br /&gt;
| (built-in) Print text to the shell.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ps|ps]]&lt;br /&gt;
| 700&lt;br /&gt;
| List process info. (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;ps aux | grep bash&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| [[#less|less]]&lt;br /&gt;
| 700&lt;br /&gt;
| Display text file or stream with scroll capability.&lt;br /&gt;
|-&lt;br /&gt;
| [[#sudo|sudo]]&lt;br /&gt;
| 600&lt;br /&gt;
| Perform next command as superuser.&lt;br /&gt;
|-&lt;br /&gt;
| [[#bash|bash]]&lt;br /&gt;
| 600&lt;br /&gt;
| Manually execute a Bash script file.&lt;br /&gt;
|-&lt;br /&gt;
| [[#du|du]]&lt;br /&gt;
| 600&lt;br /&gt;
| Display disk usage.&lt;br /&gt;
|-&lt;br /&gt;
| [[#cp|cp]]&lt;br /&gt;
| 600&lt;br /&gt;
| Copy a file.&lt;br /&gt;
|-&lt;br /&gt;
| [[#clear|clear]]&lt;br /&gt;
| 500&lt;br /&gt;
| Clear shell&#039;s dislayed text. Comparable to &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[#printf|printf]]&lt;br /&gt;
| 500&lt;br /&gt;
| Print text with customized format.&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| 400&lt;br /&gt;
| (built-in) Tell how text will be interpreted by shell (e.g. alias, executable)&lt;br /&gt;
|-&lt;br /&gt;
| [[#mpv|mpv]]&lt;br /&gt;
| 400&lt;br /&gt;
| Play audio or video.&lt;br /&gt;
|-&lt;br /&gt;
| [[#rsync|rsync]]&lt;br /&gt;
| 400&lt;br /&gt;
| Move, copy, or synchronize files and/or directories.&lt;br /&gt;
|-&lt;br /&gt;
| [[BK-2020-03#bkdatev|bkdatev]]&lt;br /&gt;
| 300&lt;br /&gt;
| Display or parse date and time information for specific time zones. ([[BK-2020-03]]: [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/master/user/bkdatev?ref_type=heads gitlab]).&lt;br /&gt;
|-&lt;br /&gt;
| [[#watch|watch]]&lt;br /&gt;
| 300&lt;br /&gt;
| Repeatedly perform a command and highlight changes in stdout. (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;watch -d -n1 df -B1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| [[#seq|seq]]&lt;br /&gt;
| 300&lt;br /&gt;
| Print a sequence of integer values.&lt;br /&gt;
|-&lt;br /&gt;
| [[#git|git]]&lt;br /&gt;
| 300&lt;br /&gt;
| Version control a repository of files.&lt;br /&gt;
|-&lt;br /&gt;
| for&lt;br /&gt;
| 300&lt;br /&gt;
| (built-in) Starting a loop to execute a command set repeatedly.&lt;br /&gt;
|-&lt;br /&gt;
| [[#date|date]]&lt;br /&gt;
| 300&lt;br /&gt;
| Display or parse date and time information.&lt;br /&gt;
|-&lt;br /&gt;
| [[#rmdir|rmdir]]&lt;br /&gt;
| 300&lt;br /&gt;
| Remove an empty directory.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ffmpeg|ffmpeg]]&lt;br /&gt;
| 300&lt;br /&gt;
| Create or modify video file.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ssh|ssh]]&lt;br /&gt;
| 200&lt;br /&gt;
| Create remote shell session.&lt;br /&gt;
|-&lt;br /&gt;
| [[#readlink|readlink]]&lt;br /&gt;
| 200&lt;br /&gt;
| Resolve a symbolic link. (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$ readlink -f some_symlink&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#apt|apt]]&lt;br /&gt;
| 200&lt;br /&gt;
| Update or install software.&lt;br /&gt;
|-&lt;br /&gt;
| [[#jdupes|jdupes]]&lt;br /&gt;
| 200&lt;br /&gt;
| Deduplicate files.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ln|ln]]&lt;br /&gt;
| 200&lt;br /&gt;
| Create or modify symbolic links.&lt;br /&gt;
|-&lt;br /&gt;
| [[#pwd|pwd]]&lt;br /&gt;
| 200&lt;br /&gt;
| Print the shellʼs current working directory.&lt;br /&gt;
|-&lt;br /&gt;
| [[#reset|reset]]&lt;br /&gt;
| 200&lt;br /&gt;
| Reïnitialize shell display. (e.g. clear bugs from displaying raw binary data)&lt;br /&gt;
|-&lt;br /&gt;
| [[#shellcheck|shellcheck]]&lt;br /&gt;
| 200&lt;br /&gt;
| [[Lint (software)|Delint]] a shell script.&lt;br /&gt;
|-&lt;br /&gt;
| [[#chmod|chmod]]&lt;br /&gt;
| 200&lt;br /&gt;
| Modify file permissions.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ffprobe|ffprobe]]&lt;br /&gt;
| 200&lt;br /&gt;
| View audio or video file metadata.&lt;br /&gt;
|-&lt;br /&gt;
| [[#exiftool|exiftool]]&lt;br /&gt;
| 100&lt;br /&gt;
| View or modify photograph file data.&lt;br /&gt;
|-&lt;br /&gt;
| [[#file|file]]&lt;br /&gt;
| 100&lt;br /&gt;
| Classify file type. (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;file /bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; )&lt;br /&gt;
|-&lt;br /&gt;
| [[#top|top]]&lt;br /&gt;
| 100&lt;br /&gt;
| List processes by CPU usage and other characteristics.&lt;br /&gt;
|-&lt;br /&gt;
| [[#df|df]]&lt;br /&gt;
| 100&lt;br /&gt;
| List disk usage. (e.g. in bytes: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;df -B1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| [[#sumdir|sumdir]]&lt;br /&gt;
| 100&lt;br /&gt;
| Generate or verify list of cryptographic digests of files. ([https://github.com/monking/shell-utilities/blob/main/sumdir monking custom script])&lt;br /&gt;
|-&lt;br /&gt;
| [[#shuf|shuf]]&lt;br /&gt;
| 100&lt;br /&gt;
| Generate random integers from &amp;lt;code&amp;gt;/dev/urandom&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
=== Linux kernel stuff ===&lt;br /&gt;
Flush cache.&amp;lt;ref&amp;gt;[https://unix.stackexchange.com/users/542349/pavan pavan].  ([[2022-09-22]]).  “[https://unix.stackexchange.com/a/718217 Setting /proc/sys/vm/drop_caches to clear cache]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-09-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo sh -c &amp;quot;sync; echo 3 &amp;gt; /proc/sys/vm/drop_caches&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [[ansi2txt]] ===&lt;br /&gt;
Part of the [[colorized-logs]] [[Debian]] package.&lt;br /&gt;
&lt;br /&gt;
Remove color codes from text.&amp;lt;ref&amp;gt;https://stackoverflow.com/a/67316339/10850071&amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ ansi2txt &amp;lt; ./input.txt &amp;gt; ./output.txt&lt;br /&gt;
  $ cat input.txt | ansi2txt &amp;gt; output.txt  # alternate method with pipes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[[grep]]&amp;lt;/code&amp;gt; example that searches file.txt, highlighting “2023” in color.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
  $ grep --color=always -- &amp;quot;2023&amp;quot; file.txt                           # view with color&lt;br /&gt;
  $ grep --color=always -- &amp;quot;2023&amp;quot; file.txt &amp;gt; results_color.txt       # store with color-codes&lt;br /&gt;
  $ ansi2txt &amp;lt; ./results_color.txt &amp;gt; ./results_nocolor.txt           # strip color codes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== apt ===&lt;br /&gt;
Show details of any package, installed or not.&lt;br /&gt;
 $ apt show &amp;amp;#91;package-name&amp;amp;#93;&lt;br /&gt;
 $ apt show gpg  # example&lt;br /&gt;
&lt;br /&gt;
Check which packages depend on package &amp;lt;code&amp;gt;package-name&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;askubuntu_20181126_rdepends&amp;quot;&amp;gt;[[Corrado Topi]].  ([[2018-11-26]]).  “[https://askubuntu.com/a/1096318 How to list dependent packages (reverse dependencies)?]”.  &#039;&#039;askubuntu.com&#039;&#039;.  Accessed [[2023-07-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ apt rdepends package-name&lt;br /&gt;
&lt;br /&gt;
Install upgrades without prompts&amp;lt;ref&amp;gt;https://unix.stackexchange.com/a/314281/411854&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
=== base64 ===&lt;br /&gt;
Calculate [[MD5]] [[checksum]] of a binary file.&amp;lt;ref&amp;gt;{{bk}}: [[2024-01-12]]: Note, &amp;lt;code&amp;gt;md5&amp;lt;/code&amp;gt; may be replaced with &amp;lt;code&amp;gt;sha256&amp;lt;/code&amp;gt; to get a [[SHA-256]] digest.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ openssl md5 -binary foo.txt | base64  # with [[openssl]] and [[base64]]&lt;br /&gt;
 $ md5sum --binary foo.txt | cut -d&#039; &#039; -f1 | xxd -r -p | base64  # with [[md5sum]], [[xxd]] and [[base64]]&amp;lt;ref name=&amp;quot;se_20101101_base64-xxd&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/1946/alex alex]  ([[2010-11-01]]).  “[https://unix.stackexchange.com/a/3678/ How can I get a base64 encoded shaX on the cli?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-01-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[bash]] ===&lt;br /&gt;
[https://www.gnu.org/software/bash/manual/bash.html Manual].&lt;br /&gt;
&lt;br /&gt;
Check if &amp;lt;code&amp;gt;$stringA&amp;lt;/code&amp;gt; comes alphabetically before &amp;lt;code&amp;gt;$stringB&amp;lt;/code&amp;gt; using current locale.&lt;br /&gt;
 $ if [[ &amp;quot;$stringA&amp;quot; &amp;lt; &amp;quot;$stringB&amp;quot; ]]; then echo true; else echo false; fi;&lt;br /&gt;
&lt;br /&gt;
Search &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; results with &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; using the exit code from a statement evaluated by the built-in &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ mkdir a;&lt;br /&gt;
 $ touch ./a/foo.txt&lt;br /&gt;
 $ touch ./a/bar.txt&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;foo&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found:&lt;br /&gt;
 ./a/foo.txt&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;baz&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found nothing.&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;.txt$&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found:&lt;br /&gt;
 ./a/bar.txt&lt;br /&gt;
 ./a/foo.txt&lt;br /&gt;
&lt;br /&gt;
Use modulo integer math to print the integers between 0 and 100 that are divisible by 5.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 for ((i=0; i&amp;amp;lt;=100; i++)); do&lt;br /&gt;
   if [ $((i % 5)) -eq 0 ]; then&lt;br /&gt;
     echo $i&lt;br /&gt;
   fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Count the number of occurrences of a single ASCII character (e.g. &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;) (see [https://stackoverflow.com/a/16679640 ref])&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 var=&amp;quot;text,text,text,text&amp;quot;&lt;br /&gt;
 res=&amp;quot;${var//[^,]}&amp;quot;&lt;br /&gt;
 echo &amp;quot;$res&amp;quot;&lt;br /&gt;
 echo &amp;quot;${#res}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Quotation rules ====&lt;br /&gt;
How to insert a single apostrophe into an already single-apostrophe-quoted string.&lt;br /&gt;
 $ echo &amp;quot;You can&#039;t do it easily&amp;quot; | sed -E -e &#039;s/can&#039;\&#039;&#039;t/can/&#039;  # sed example&lt;br /&gt;
 You can do it easily.&lt;br /&gt;
&lt;br /&gt;
==== Bash input/output ====&lt;br /&gt;
Provide string to a command via stdin. The following are equivalent.&lt;br /&gt;
 $ echo &amp;quot;666&amp;quot; | sed &#039;s/6/7/g&#039;;              # Uses pipe format.&lt;br /&gt;
 777&lt;br /&gt;
 $ myVar=&amp;quot;666&amp;quot;; sed &#039;s/6/7/g &amp;lt;&amp;lt;&amp;lt; &amp;quot;$myVar&amp;quot;;  # Uses “here string” format.&amp;lt;ref&amp;gt;See https://www.gnu.org/software/bash/manual/bash.html#Here-Strings .&amp;lt;/ref&amp;gt;&lt;br /&gt;
 777&lt;br /&gt;
&lt;br /&gt;
Supply the first line of a text file as an argument.&lt;br /&gt;
 $ fpass=/dev/shm/password.txt;           # create file&lt;br /&gt;
 $ touch &amp;quot;$fpass&amp;quot; &amp;amp;&amp;amp; chmod 700 &amp;quot;$fpass&amp;quot;;  # set to user-only permission&lt;br /&gt;
 $ echo &amp;quot;hunter2&amp;quot; &amp;gt; &amp;quot;$fpass&amp;quot;;             # save password to file&lt;br /&gt;
 $ echo &amp;quot;$(head -n1 &amp;quot;$fpass&amp;quot;)&amp;quot;;     # read contents of file as argument&lt;br /&gt;
&lt;br /&gt;
==== Bash job management ====&lt;br /&gt;
&#039;&#039;See https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Job-Control &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Push job into background.&lt;br /&gt;
 ^Z   # (i.e. Ctrl-Z)&lt;br /&gt;
 [1]+ Stopped     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a&lt;br /&gt;
&lt;br /&gt;
Get a list of current background jobs&lt;br /&gt;
 $ jobs&lt;br /&gt;
 [1]+ Stopped     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a&lt;br /&gt;
&lt;br /&gt;
Restart a job (e.g. one with &amp;lt;code&amp;gt;jobspec&amp;lt;/code&amp;gt; 1) in the background and check that it is running.&lt;br /&gt;
 $ bg 1&lt;br /&gt;
 [1]+ git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a &amp;amp;&lt;br /&gt;
 $ jobs&lt;br /&gt;
 [1]+ Running     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Detach a job (e.g. one with &amp;lt;code&amp;gt;jobspec&amp;lt;/code&amp;gt; 1) from the current shell to permit safe exit without terminating the job.&lt;br /&gt;
 $ disown %1&lt;br /&gt;
&lt;br /&gt;
==== Bash string manipulation ====&lt;br /&gt;
&#039;&#039;See [https://tldp.org/LDP/abs/html/string-manipulation.html Manipulating Strings].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;lt;code&amp;gt;${parameter}&amp;lt;/code&amp;gt; syntax invokes what is known as “Parameter Expansion”.&amp;lt;ref name=&amp;quot;gnu_2025_shell-param-exp&amp;quot;&amp;gt;&lt;br /&gt;
“[https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html Bash Features: 3.5.3 Shell Parameter Expansion]”. (n.d.). &#039;&#039;[[gnu.org]]&#039;&#039;.  Accessed [[2025-10-21]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace substring in variable.&amp;lt;ref name=&amp;quot;cooper_20140310_bash-strings&amp;quot;&amp;gt;[[Mendel Cooper]].  ([[2014-03-10]]).  “[https://tldp.org/LDP/abs/html/string-manipulation.html Advanced Bash-Scripting Guide: 10. Manipulating Strings]”.  &#039;&#039;[[tldp.org]]&#039;&#039;.  Accessed [[2024-02-12]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ myVar=&amp;quot;foobarbaz&amp;quot;;&lt;br /&gt;
$ echo &amp;quot;${myVar/bar/qux}&amp;quot;;&lt;br /&gt;
fooquxbaz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get first 7 characters of a string.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:0:7}&amp;quot;  # i.e. starting with character &#039;0&#039;, print &#039;7&#039; characters&lt;br /&gt;
 deadbee&lt;br /&gt;
&lt;br /&gt;
Print substring by specifying index and desired substring length.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:4:3}&amp;quot;  # i.e. starting with character &#039;4&#039;, print &#039;3&#039; characters&lt;br /&gt;
 bee&lt;br /&gt;
&lt;br /&gt;
Get last 4 characters of a string.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:(-4)}&amp;quot;;&lt;br /&gt;
 beef&lt;br /&gt;
&lt;br /&gt;
Lowercase characters in a variable&lt;br /&gt;
 $ myVar=&amp;quot;fooBARbaz&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar,,}&amp;quot;;&lt;br /&gt;
 foobarbaz&lt;br /&gt;
&lt;br /&gt;
Remove shortest matching pattern (e.g. &amp;lt;code&amp;gt;bar*&amp;lt;/code&amp;gt;) from end of variable.&lt;br /&gt;
 $ myVar=&amp;quot;foobarbar&amp;quot;; myVar2=&amp;quot;${myVar%bar*}&amp;quot;; declare -p myVar myVar2&lt;br /&gt;
 declare -- myVar=&amp;quot;foobarbar&amp;quot;&lt;br /&gt;
 declare -- myVar2=&amp;quot;foobar&amp;quot;    # only one &#039;bar&#039; removed&lt;br /&gt;
&lt;br /&gt;
Remove longest matching pattern (e.g. &amp;lt;code&amp;gt;bar*&amp;lt;/code&amp;gt;) from end of variable.&lt;br /&gt;
 $ myVar=&amp;quot;foobarbar&amp;quot;; myVar2=&amp;quot;${myVar%%bar*}&amp;quot;; declare -p myVar myVar2&lt;br /&gt;
 declare -- myVar=&amp;quot;foobarbar&amp;quot;&lt;br /&gt;
 declare -- myVar2=&amp;quot;foo&amp;quot;       # all the &#039;bar&#039;ʼs removed&lt;br /&gt;
&lt;br /&gt;
: Works with array parameter expansion too.&lt;br /&gt;
 $ myVar=&amp;quot;$(printf &amp;quot;foo\tbar\tbaz\n&amp;quot;)&amp;quot;; myArr[3]=&amp;quot;$myVar&amp;quot;; echo &amp;quot;${myArr[3]}&amp;quot;;&lt;br /&gt;
 foo	bar	baz&lt;br /&gt;
 $ echo &amp;quot;${myArr[3]%$&#039;\t&#039;*}&amp;quot;;  # cutoff starts at last tab &#039;\t&#039;&lt;br /&gt;
 foo	bar&lt;br /&gt;
 $ echo &amp;quot;${myArr[3]%%$&#039;\t&#039;*}&amp;quot;  # cutoff starts at first tab &#039;\t&#039;&lt;br /&gt;
 foo&lt;br /&gt;
&lt;br /&gt;
==== Array manipulation ====&lt;br /&gt;
Declare an array. (usually not needed, but good practice; not an “associative array”)&lt;br /&gt;
 $ declare -a my_array&lt;br /&gt;
&lt;br /&gt;
Store lines into an array. (Requires [[Bash]] version 4 or above)&lt;br /&gt;
 $ mapfile -t my_array &amp;lt; &amp;lt;(find &amp;quot;$HOME&amp;quot; -type f)  # store file list&lt;br /&gt;
 $ mapfile -t my_array &amp;lt; &amp;lt;(seq 1 10)              # store the integers 1 through 10&lt;br /&gt;
&lt;br /&gt;
Store lines into an array without &amp;lt;code&amp;gt;mapfile&amp;lt;/code&amp;gt; and process substitution (&amp;lt;code&amp;gt;&amp;lt; &amp;lt;(...)&amp;lt;/code&amp;gt;); compatible with Bash 3.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while IFS=&#039;&#039; read -r line; do&lt;br /&gt;
  my_array+=(&amp;quot;$line&amp;quot;);&lt;br /&gt;
done &amp;lt; &amp;lt;(find &amp;quot;$HOME&amp;quot; -type f);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check contents of an array in verbose style. (or any Bash variable)&lt;br /&gt;
 $ declare -p my_array&lt;br /&gt;
&lt;br /&gt;
Get count of array elements. (works even after you &amp;lt;code&amp;gt;unset&amp;lt;/code&amp;gt; an array element)&lt;br /&gt;
 $ echo &amp;quot;${#my_array[@]}&amp;quot;  # note the “#”&lt;br /&gt;
&lt;br /&gt;
Get array indices (each array element as a word; useful for &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loops)&lt;br /&gt;
 $ echo &amp;quot;${!my_array[@]}&amp;quot;  # note the “!”&lt;br /&gt;
&lt;br /&gt;
View a particular element of an array by index (Note: zero-indexed)&lt;br /&gt;
 $ printf &amp;quot;%s\n&amp;quot; &amp;quot;${my_array[1]}&amp;quot;  # display second element&lt;br /&gt;
 $ echo &amp;quot;${my_array[1]}&amp;quot;           # mostly the same, but beware special escaped character cases&lt;br /&gt;
&lt;br /&gt;
View all elements of an array, printing one line per array element.&lt;br /&gt;
 $ printf &amp;quot;%s\n&amp;quot; &amp;quot;${my_array[@]}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Act on each array element sequentially in a &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
for i in &amp;quot;${!my_array[@]}&amp;quot;; do&lt;br /&gt;
  printf &amp;quot;%s\n&amp;quot; &amp;quot;Checking element ${i} of ${#my_array[@]}.&amp;quot;;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove a particular array element by index.&lt;br /&gt;
 $ unset my_array[1]  # remove second element.&lt;br /&gt;
&lt;br /&gt;
Declare an associative array. (i.e. an array that uses strings as indices)&lt;br /&gt;
 $ declare -A myaa  #みゃあ&lt;br /&gt;
&lt;br /&gt;
Add an element to an associative array. (various styles)&lt;br /&gt;
 $ myaa[&amp;quot;september&amp;quot;]=&amp;quot;7&amp;quot;;&lt;br /&gt;
 $ myaa[&amp;quot;october&amp;quot;]=8;&lt;br /&gt;
 $ my_month=&amp;quot;december&amp;quot;; my_var=&amp;quot;10&amp;quot;; myaa[&amp;quot;${my_month}&amp;quot;]=&amp;quot;${my_var}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Check contents of an associative array (same as for any Bash array)&lt;br /&gt;
 $ declare -p myaa&lt;br /&gt;
 $ declare -p my_array myaa  # check two variables at the same time&lt;br /&gt;
&lt;br /&gt;
==== Iteration statements ====&lt;br /&gt;
Typical &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop that checks &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; first then performs &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; until &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while condition; do&lt;br /&gt;
  body;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emulate a &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop {{bkc|[[2025-10-11]]: Not compatible with &amp;lt;code&amp;gt;set -e&amp;lt;/code&amp;gt; error-handling which is supposed to end Bash script execution if any line fails. }} that initially performs &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; at least once before checking &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt;. Repeats &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; until &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;so_20140626_bash-do-while&amp;quot;&amp;gt;[https://stackoverflow.com/users/1899640/that-other-guy that other guy].  ([[2014-06-26]]).  “[https://stackoverflow.com/a/24421013 Is there a do-while loop in bash?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2025-10-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while&lt;br /&gt;
  body;&lt;br /&gt;
  condition;&lt;br /&gt;
do true; done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emulate a &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop with &amp;lt;code&amp;gt;set -e&amp;lt;/code&amp;gt; error-handling support:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while true; do&lt;br /&gt;
  body;&lt;br /&gt;
  condition || break;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[bc]] ===&lt;br /&gt;
Evaluate math expressions&lt;br /&gt;
 $ echo &amp;quot;scale=12; 1 / 1.61803398875&amp;quot; | bc -l  # division with 12 decimal places&lt;br /&gt;
 .618033988749&lt;br /&gt;
 $ echo &amp;quot;scale=6; l(2.718281)&amp;quot; | bc -l  # logarithm with only 6 decimal places&lt;br /&gt;
 .999999&lt;br /&gt;
&lt;br /&gt;
=== brew ===&lt;br /&gt;
[[Homebrew (package manager)|Homebrew]] is a package manager for [[macOS]].&lt;br /&gt;
&lt;br /&gt;
Install via script and [[curl]] (simple, but sketchy method available at https://brew.sh ):&lt;br /&gt;
 $ /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Update packages&lt;br /&gt;
 $ brew update&lt;br /&gt;
&lt;br /&gt;
Get info on a package&lt;br /&gt;
 $ brew info coreutils&lt;br /&gt;
&lt;br /&gt;
Install a package&lt;br /&gt;
 $ brew install coreutils&lt;br /&gt;
&lt;br /&gt;
Test package commands&lt;br /&gt;
 $ gdate -Is  # Equivalent to Debian 12 `$ date -Is`.&lt;br /&gt;
 2024-10-08T20:03:18+00:00&lt;br /&gt;
&lt;br /&gt;
=== calibredb ===&lt;br /&gt;
Command-line interface for [[ebook]] manager [[Calibre]]&lt;br /&gt;
&lt;br /&gt;
List all books in &amp;lt;code&amp;gt;author; title&amp;lt;/code&amp;gt; format with [[jq]].&lt;br /&gt;
 $ calibredb list --for-machine | jq -r &#039;.[] | &amp;quot;\(.authors); \(.title)&amp;quot; &#039; | sort&lt;br /&gt;
&lt;br /&gt;
=== cat ===&lt;br /&gt;
Concatenate file.&lt;br /&gt;
 $ cat file1.txt file2.txt&lt;br /&gt;
&lt;br /&gt;
Print contents of &amp;lt;code&amp;gt;file1.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ cat file.txt&lt;br /&gt;
&lt;br /&gt;
=== cd ===&lt;br /&gt;
Change working directory to home directory.&lt;br /&gt;
 $ cd ~/&lt;br /&gt;
&lt;br /&gt;
Change working directory to parent directory.&lt;br /&gt;
 $ cd ../&lt;br /&gt;
&lt;br /&gt;
Change working directory to &amp;lt;code&amp;gt;~/Documents&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ cd ~/Documents&lt;br /&gt;
&lt;br /&gt;
=== chmod ===&lt;br /&gt;
References:&lt;br /&gt;
* https://www.pluralsight.com/blog/it-ops/linux-file-permissions&lt;br /&gt;
* https://linuxconfig.org/chmod&lt;br /&gt;
&lt;br /&gt;
Remove read, write, and execute permissions for &#039;&#039;others&#039;&#039; to a file or directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chmod o-rwx foo&lt;br /&gt;
&lt;br /&gt;
Add read and execute permissions for &#039;&#039;group&#039;&#039; to a file or directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chmod g+rx foo&lt;br /&gt;
&lt;br /&gt;
Make all &#039;&#039;directories&#039;&#039; openable (i.e. executable) by &#039;&#039;user&#039;&#039; starting at a directory named &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # find ./bar -type d -exec chmod u+x \;&lt;br /&gt;
&lt;br /&gt;
Make all &#039;&#039;files&#039;&#039; non-executable by everyone within a directory named &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # find ./bar -type f -exec chmod ugo-x \;&lt;br /&gt;
 # find ./bar -type f -exec chmod -x \;&lt;br /&gt;
&lt;br /&gt;
Make a file named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; executable for &#039;&#039;user&#039;&#039;, &#039;&#039;group&#039;&#039;, and &#039;&#039;others&#039;&#039; (i.e. everyone).&lt;br /&gt;
 # chown +x foo&lt;br /&gt;
&lt;br /&gt;
=== choom ===&lt;br /&gt;
Get OOM score for process with PID &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ choom --pid 1&lt;br /&gt;
&lt;br /&gt;
List the bottom 50 processes in the OOM priority list (during low memory, the bottom is killed first).&lt;br /&gt;
 $ printf &amp;quot;pid,ooms,name\n&amp;quot;; while read -r line; do pid=&amp;quot;$(echo &amp;quot;$line&amp;quot; | cut -d&#039; &#039; -f2)&amp;quot;; name=&amp;quot;$(echo &amp;quot;$line&amp;quot; | cut -d&#039; &#039; -f11-)&amp;quot;; ooms=&amp;quot;$(choom -p &amp;quot;$pid&amp;quot; | grep -Eo &amp;quot;[0-9]+$&amp;quot; | head -n1)&amp;quot;; printf &amp;quot;%9d,%4d,%s\n&amp;quot; &amp;quot;$pid&amp;quot; &amp;quot;$ooms&amp;quot; &amp;quot;$name&amp;quot;; done &amp;lt; &amp;lt;(ps aux | tr -s &#039; &#039; | tail -n+2) | sort -k2 | tail -n50&lt;br /&gt;
&lt;br /&gt;
=== chown ===&lt;br /&gt;
Change ownership of a file or directory named &amp;lt;code&amp;gt;baz&amp;lt;/code&amp;gt; to &#039;&#039;user&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt; and &#039;&#039;group&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chown debuser:debuser baz&lt;br /&gt;
&lt;br /&gt;
Change ownership of all files and directories contained within the directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; to &#039;&#039;user&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt; and &#039;&#039;group&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
 root@h: chown -R debuser:debuser foo&lt;br /&gt;
&lt;br /&gt;
=== [[chrony]] ===&lt;br /&gt;
The following commands assume the package [[chrony]] is installed.&lt;br /&gt;
&lt;br /&gt;
Get a list of NTP refclocks being used to adjust local time:&lt;br /&gt;
 $ chronyc sources&lt;br /&gt;
&lt;br /&gt;
Get current machine&#039;s statistics (e.g. get Frequency or how slow or fast local clock is)&lt;br /&gt;
 $ chronyc tracking&lt;br /&gt;
&lt;br /&gt;
=== clear ===&lt;br /&gt;
Clear terminal screen.&lt;br /&gt;
&lt;br /&gt;
 $ clear&lt;br /&gt;
&lt;br /&gt;
=== convert ===&lt;br /&gt;
&#039;&#039;See [[#ImageMagick]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== column ===&lt;br /&gt;
&amp;lt;code&amp;gt;column&amp;lt;/code&amp;gt; may be used to print lines of standard input into columns (to reduce the total number of lines) or to create tables with custom delimiters (same number of lines). Part of the &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; package (version &amp;lt;code&amp;gt;2.39.3&amp;lt;/code&amp;gt;) in [[Debian]] systems.&lt;br /&gt;
&lt;br /&gt;
Reduce number of rows.&lt;br /&gt;
 $ seq 1 10                 # example multi-line input&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
 $ seq 1 10 | column;       # minimze rows&lt;br /&gt;
 1	2	3	4	5	6	7	8	9	10&lt;br /&gt;
&lt;br /&gt;
 $ seq 1 10 | column -c 30  # reduce rows to width of 30 characters&lt;br /&gt;
 1	5	9&lt;br /&gt;
 2	6	10&lt;br /&gt;
 3	7&lt;br /&gt;
 4	8&lt;br /&gt;
&lt;br /&gt;
Display text table with separator &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ printf &amp;quot;foo/bar/baz\nbi/boo/tax\n&amp;quot;&lt;br /&gt;
 foo/bar/baz&lt;br /&gt;
 bi/boo/tax&lt;br /&gt;
 $ printf &amp;quot;foo/bar/baz\nbi/boo/tax\n&amp;quot; | column -t -s&#039;/&#039;&lt;br /&gt;
 foo  bar  baz&lt;br /&gt;
 bi   boo  tax&lt;br /&gt;
&lt;br /&gt;
Display &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; contents (which uses &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; as separator)&lt;br /&gt;
 $ sudo cat /etc/passwd | column -t -s &#039;:&#039;&lt;br /&gt;
&lt;br /&gt;
=== cp ===&lt;br /&gt;
Copy a file or directory.&lt;br /&gt;
&lt;br /&gt;
Copy a file.&lt;br /&gt;
 $ cp some_file some_file_copy&lt;br /&gt;
&lt;br /&gt;
Copy a directory and its contents.&lt;br /&gt;
 $ cp -r some_dir some_dir_copy&lt;br /&gt;
&lt;br /&gt;
=== [[cron|crontab]] ===&lt;br /&gt;
Edit crontab.&lt;br /&gt;
 $ crontab -e&lt;br /&gt;
&lt;br /&gt;
Print crontab to stdout:&lt;br /&gt;
 $ crontab -l&lt;br /&gt;
&lt;br /&gt;
Erase crontab (DON&#039;T DO UNLESS YOU HAVE A BACKUP OF THE CRONTAB):&lt;br /&gt;
 $ crontab -r&lt;br /&gt;
&lt;br /&gt;
Print to stdout the &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; of user &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; via user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; ([https://askubuntu.com/questions/189189/how-to-run-crontab-as-userwww-data ref]):&lt;br /&gt;
 $ sudo su - www-data -s /bin/bash -c &amp;quot;crontab -l&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== cryptsetup ===&lt;br /&gt;
==== Get details on a volume encrypted with LUKS ====&lt;br /&gt;
&lt;br /&gt;
 $ cryptsetup status /dev/mapper/$some_volume&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;$some_volume&amp;lt;/code&amp;gt; is the name of an encrypted volume. [https://unix.stackexchange.com/questions/260533/how-to-determine-what-encryption-is-being-used-a-luks-partition Reference].&lt;br /&gt;
&lt;br /&gt;
=== cut ===&lt;br /&gt;
Select second field in comma-delimited CSV file &amp;lt;code&amp;gt;file.csv&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ cut -d&#039;,&#039; -f2&lt;br /&gt;
&lt;br /&gt;
Select second field in tab-delimited TSV file &amp;lt;code&amp;gt;file.tsv&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ cut -d$&#039;\t&#039; -f2 file.tsv&lt;br /&gt;
&lt;br /&gt;
Select fields 3 through 7 in comma-delimited CSV file.&lt;br /&gt;
 $ cut -d&#039;,&#039; -f3-7 file.csv&lt;br /&gt;
&lt;br /&gt;
=== [[date]] ===&lt;br /&gt;
&#039;&#039;Note: Assumes GNU date.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Print today&#039;s calendar date in [[ISO 8601]] format&lt;br /&gt;
 $ date -I&lt;br /&gt;
 $ date -Id&lt;br /&gt;
 $ date +%Y-%m-%d&lt;br /&gt;
&lt;br /&gt;
Print current date and time in [[ISO 8601]] format to second resolution.&lt;br /&gt;
 $ date -Is                    # e.g. 2024-02-01T05:44:58+00:00&lt;br /&gt;
 $ date +%Y-%m-%dT%H:%M:%S%:z  # e.g. 2024-02-01T05:44:58+00:00&lt;br /&gt;
&lt;br /&gt;
Print current date and time in [[ISO 8601]] format to second resolution with minimal separators. (e.g. for file name use)&lt;br /&gt;
 $ date +%Y%m%dT%H%M%S%z  # e.g. 20240201T054458+00&lt;br /&gt;
&lt;br /&gt;
Print current UNIX epoch. (i.e. [[POSIX]] seconds since [[1970-01-01]].).&lt;br /&gt;
 $ date +%s&lt;br /&gt;
&lt;br /&gt;
Print actual seconds since [[1970-01-01]]. (requires [https://packages.debian.org/trixie/tzdata-legacy tzdata-legacy])&amp;lt;ref name=&amp;quot;ken_20160303_right-tz&amp;quot;&amp;gt;[https://kenta.blogspot.com/ Ken].  ([[2016-03-03]]).  “[https://kenta.blogspot.com/2016/03/sqfzcxay-understanding-right-time-zone.html [sqfzcxay] Understanding the &amp;quot;right&amp;quot; time zone database]”.  &#039;&#039;[[blogspot.com]]&#039;&#039;.  Accessed [[2026-04-26]].  &amp;lt;/ref&amp;gt;{{bkc|[[2026-04-27]]: Getting the &amp;lt;code&amp;gt;/usr/share/zoneinfo/right/UTC&amp;lt;/code&amp;gt; may require running &amp;lt;code&amp;gt;$ sudo apt install tzdata-legacy&amp;lt;/code&amp;gt; on a [[Debian]]-based system. }}&lt;br /&gt;
 $ TZ=right/UTC date --date=&amp;quot;$(date --iso-8601=s)&amp;quot; +%s;&lt;br /&gt;
&lt;br /&gt;
Print all calendar dates for the next 365 days. (e.g. &amp;lt;code&amp;gt;2024-02-01\n2024-02-02\n2024-02-03\n…&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
today=&amp;quot;$(date +%s)&amp;quot;; n=0; for dia in {0..365}; do&lt;br /&gt;
  day=&amp;quot;$((today + dia * (24*60*60) ))&amp;quot;;&lt;br /&gt;
  date --date=&amp;quot;@$day&amp;quot; &amp;quot;+%Y-%m-%d&amp;quot;;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get date from hexadecimal Unix epoch.&lt;br /&gt;
 $ date -Is --date=&amp;quot;@$(printf &amp;quot;%u&amp;quot; &amp;quot;0x68ed790a&amp;quot;)&amp;quot;&lt;br /&gt;
 2025-10-13T22:11:22+00:00&lt;br /&gt;
 $ date -Is --date=&amp;quot;@$(printf &amp;quot;%u&amp;quot; &amp;quot;0xFFFFFFFF&amp;quot;)&amp;quot;    #  See [[Time formatting and storage bugs#Year_2106|Time formatting and storage bugs]]&lt;br /&gt;
 2106-02-07T06:28:15+00:00&lt;br /&gt;
&lt;br /&gt;
=== [[dd]] ===&lt;br /&gt;
Read every block of a block device &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt; in 4 KiB increments.&lt;br /&gt;
 $ sudo dd if=/dev/sdb of=/dev/random bs=4k&lt;br /&gt;
&lt;br /&gt;
Create a 10 MiB file containing [[pseudorandom noise]] using 2 MiB of [[Random access memory|RAM]] at a time.&amp;lt;ref name=&amp;quot;su_20120906_ddrandfile&amp;quot;&amp;gt;[[u1686_grawity]]. ([[2012-09-06]]). “[https://superuser.com/a/470957/1142336 How do I create a 1GB random file in Linux?]”. &#039;&#039;superuser.com&#039;&#039;. Accessed [[2023-07-01]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ dd if=/dev/urandom of=sample.txt bs=2M count=5&lt;br /&gt;
&lt;br /&gt;
=== [[df]] ===&lt;br /&gt;
Display free disk space.&lt;br /&gt;
 $ df&lt;br /&gt;
&lt;br /&gt;
Display free disk space in bytes.&lt;br /&gt;
 $ df -B1&lt;br /&gt;
&lt;br /&gt;
Display free disk space in gigabytes (1024&amp;lt;rsup&amp;gt;3&amp;lt;/rsup&amp;gt; bytes)&lt;br /&gt;
 $ df -BG&lt;br /&gt;
 $ df -BGiB&lt;br /&gt;
&lt;br /&gt;
Display free disk space in gibibytes (1000&amp;lt;rsup&amp;gt;3&amp;lt;/rsup&amp;gt; bytes)&lt;br /&gt;
 $ df -BGB&lt;br /&gt;
 $ df -B1000000000&lt;br /&gt;
&lt;br /&gt;
=== [[du]] ===&lt;br /&gt;
List disk usage of ALL files and directories within working directory in bytes.&lt;br /&gt;
 $ du -b .&lt;br /&gt;
 $ du -b -- .&lt;br /&gt;
&lt;br /&gt;
List disk usage (i.e. size) of files and directories within working directory. (i.e. depth 1)&lt;br /&gt;
 $ du -bd1 -- .&lt;br /&gt;
&lt;br /&gt;
List disk usage of &amp;lt;code&amp;gt;*.txt&amp;lt;/code&amp;gt; files (and directories) fitting pattern &amp;lt;code&amp;gt;*.txt&amp;lt;/code&amp;gt; within working directory.{{bkc|[[2025-10-21]]: Note: Using the &amp;lt;code&amp;gt;find -printf &#039;%s\t%p\n&#039;&amp;lt;/code&amp;gt; pattern is much faster than calling &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt; repeatedly in a &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop that is fed paths from &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;. It&#039;s even faster than &amp;lt;code&amp;gt;find -exec du -b &#039;{}&#039; \+&amp;lt;/code&amp;gt; trick. }}&lt;br /&gt;
 $ du -bd1 -- *.txt&lt;br /&gt;
 $ find ./ -maxdepth 1 -name &amp;quot;*.txt&amp;quot; -printf &#039;%s\t%p\n&#039;  # faster than &#039;du&#039;&lt;br /&gt;
&lt;br /&gt;
=== dig ===&lt;br /&gt;
Get public IP address&amp;lt;ref name=&amp;quot;cyberciti_20230311_getpublicip&amp;quot;&amp;gt;[[Vivek Gite|Gite, Vivek]]. ([[2023-03-11]]). “[https://www.cyberciti.biz/faq/how-to-find-my-public-ip-address-from-command-line-on-a-linux/ How To Find My Public IP Address From Linux CLI]”. &#039;&#039;cyberciti.biz&#039;&#039;. Accessed [[2023-05-08]].&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ dig +short myip.opendns.com @resolver1.opendns.com&lt;br /&gt;
 $ dig +short txt ch whoami.cloudflare @1.0.0.1&lt;br /&gt;
 $ dig TXT +short o-o.myaddr.l.google.com @ns1.google.com&lt;br /&gt;
&lt;br /&gt;
=== [[dpkg]] ===&lt;br /&gt;
List available [[kernel]]s.&lt;br /&gt;
 $ dpkg --list | grep -- linux-image&lt;br /&gt;
&lt;br /&gt;
Check which package owns a file.&lt;br /&gt;
 $ dpkg -S /etc/systemd/logind.conf  # by file path&lt;br /&gt;
 $ dpkg -S &amp;quot;$(which zdump)&amp;quot;          # by command name, e.g. `zdump`&lt;br /&gt;
&lt;br /&gt;
=== dpkg-reconfigure ===&lt;br /&gt;
Add a [[locale]] in [[Debian]]-based systems that use [[dpkg]].&lt;br /&gt;
 $ sudo dpkg-reconfigure locales&lt;br /&gt;
: Navigate menus to select the local. Recommended: locales ending in &amp;lt;code&amp;gt;.UTF-8&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;C.UTF-8&amp;lt;/code&amp;gt; (compatibility), &amp;lt;code&amp;gt;en_US.UTF-8&amp;lt;/code&amp;gt; ([[English language|English]] of United States), &amp;lt;code&amp;gt;zh_CN.UTF-8&amp;lt;/code&amp;gt; ([[Chinese language|Chinese]] of mainland China), &amp;lt;code&amp;gt;id_ID.UTF-8&amp;lt;/code&amp;gt; ([[Indonesian language|Indonesian]] of [[Indonesia]]), &amp;lt;code&amp;gt;ja_JP.UTF-8&amp;lt;/code&amp;gt; ([[Japanese language|Japanese]] of [[Japan]]), &amp;lt;code&amp;gt;ko_KR.UTF-8&amp;lt;/code&amp;gt; ([[Korean language|Korean]] of [[South Korea]]).&lt;br /&gt;
&lt;br /&gt;
=== [[dstat]] ===&lt;br /&gt;
&#039;&#039;Consider using [[dool]] ([https://github.com/scottchiefbaker/dool GitHub])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show system stats, averaged every 60 seconds per line&lt;br /&gt;
 dstat --time --load --proc --cpu --mem --disk --io --net --sys --vm 60&lt;br /&gt;
&lt;br /&gt;
=== [[dool]] ===&lt;br /&gt;
&#039;&#039;A [[python3]] fork of [[dstat]].&#039;&#039;&amp;lt;ref name=&amp;quot;tecmint_20240422_dool&amp;quot;&amp;gt;[[Aaron Kili]].  ([[2024-04-22]]).  “[https://www.tecmint.com/dool-monitor-linux-server-performance-process-memory-network/ Dool – All-in-One Linux Server Performance Monitoring Tool]”.  [[tecmint.com]].  Accessed [[2025-10-03]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show system stats, averaged every 60 seconds per line&lt;br /&gt;
 dool --time --load --proc --cpu --mem --disk --io --net --bytes --sys --vm 60&lt;br /&gt;
&lt;br /&gt;
=== [[emacs]] ===&lt;br /&gt;
&#039;&#039;See [[Emacs notes]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== [[exiftool]] ===&lt;br /&gt;
&#039;&#039;Note: Consider using [[BK-2020-03]]&amp;lt;code&amp;gt;bkphotorights&amp;lt;/code&amp;gt; script to add XMP data with Creative Commons attribution data.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List all EXIF data, including XMP tags.&lt;br /&gt;
 $ exiftool file.jpg&lt;br /&gt;
&lt;br /&gt;
Remove all EXIF data from photograph files&lt;br /&gt;
 $ exiftool -all= file.jpg&lt;br /&gt;
&lt;br /&gt;
Remove only GPS EXIF data from JPG (see https://exiftool.org/forum/index.php?topic=6037.0 )&lt;br /&gt;
 $ exiftool -gps:all= file.jpg&lt;br /&gt;
&lt;br /&gt;
remove only GPS EXIF data from JPG If GPS is in XMP:&lt;br /&gt;
 $ exiftool &amp;quot;-gps*=&amp;quot; file.jpg&lt;br /&gt;
&lt;br /&gt;
Rotate image via EXIF tag&amp;lt;ref name=&amp;quot;exiftool_20161218_rotate&amp;quot;&amp;gt;Alan Clifford.  ([[2016-12-18]]).  “[https://exiftool.org/forum/index.php?PHPSESSID=57842c30da5ac949b63ec7325448da35&amp;amp;msg=40314 Writing to the EXIF:Orientation Tag]”.  &#039;&#039;[[exiftool.org]]&#039;&#039;.  Accessed [[2024-07-13]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ exiftool -Orientation#=1 file.jpg   # Horizontal (normal)&lt;br /&gt;
 $ exiftool -Orientation#=2 file.jpg   # Mirror horizontal&lt;br /&gt;
 $ exiftool -Orientation#=3 file.jpg   # Rotate 180&lt;br /&gt;
 $ exiftool -Orientation#=4 file.jpg   # Mirror vertical&lt;br /&gt;
 $ exiftool -Orientation#=5 file.jpg   # Mirror horizontal and rotate 270 CW&lt;br /&gt;
 $ exiftool -Orientation#=6 file.jpg   # Rotate 90 CW&lt;br /&gt;
 $ exiftool -Orientation#=7 file.jpg   # Mirror horizontal and rotate 90 CW&lt;br /&gt;
 $ exiftool -Orientation#=8 file.jpg   # Rotate 270 CW&lt;br /&gt;
&lt;br /&gt;
=== [[f3]] ===&lt;br /&gt;
&#039;&#039;&#039;Fight Fake Flash&#039;&#039;&#039; (F3) is a utility for detecting fake flash storage drives.&amp;lt;ref name=&amp;quot;debian_2023_fightfakeflash&amp;quot;&amp;gt;“[https://tracker.debian.org/pkg/f3 f3 - test real flash memory capacity]”.  ([[2023]]).  &#039;&#039;[[tracker.debian.org]]&#039;&#039;.  Accessed [[2024-11-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install&lt;br /&gt;
 $ sudo apt install f3&lt;br /&gt;
&lt;br /&gt;
Run on drive mounted at &amp;lt;code&amp;gt;/media/baltakatei/myusb&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ f3write /media/baltakatei/myusb&lt;br /&gt;
&lt;br /&gt;
Verify&lt;br /&gt;
 $ f3read /media/baltakatei/myusb&lt;br /&gt;
&lt;br /&gt;
=== [[ffmpeg]] ===&lt;br /&gt;
Encode [[h264]] video for compatibility with [[Firefox]].&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -pix_fmt yuv420p output.mp4&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 18 -pix_fmt yuv420p output.mp4  # higher quality&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 26 -pix_fmt yuv420p output.mp4  # smaller size&lt;br /&gt;
&lt;br /&gt;
Extract clip with time codes.&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -avoid_negative_ts 1 output.mp4&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -c:v libx264 -preset slow -crf 18 -c:a aac -b:a 128k -avoid_negative_ts 1 output.mp4      &lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 60 -t 120 -avoid_negative_ts 1 output.mp4&lt;br /&gt;
&lt;br /&gt;
Extract frame of video to save as [[PNG]] file&lt;br /&gt;
 $ ffmpeg -i input.webm -ss 00:00:00 -frames:v 1 output.png  # first frame&lt;br /&gt;
 $ ffmpeg -i input.webm -ss 00:00:10 -frames:v 1 output.png  # a frame from 10 seconds in&lt;br /&gt;
&lt;br /&gt;
Extract album artwork from one of the original audiobook mp3 files. (&#039;&#039;see [[Audiobook transcoding notes]].&#039;&#039;; example: [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/738ad68b7df736f438f74dfeffd56e400fb2c1bf/user/mp3s_to_mkv.sh mp3s_to_mkv.sh])&lt;br /&gt;
 $ ffmpeg -i How\ To\ -\ Track\ 001.mp3 -an -vcodec copy album_artwork.png&lt;br /&gt;
&lt;br /&gt;
Convert &amp;lt;code&amp;gt;*.JPG&amp;lt;/code&amp;gt; files into time lapse at 60 frames per second (&amp;lt;code&amp;gt;-r 60&amp;lt;/code&amp;gt;) with &amp;lt;code&amp;gt;yuvj420p&amp;lt;/code&amp;gt; colors to reduce banding.&amp;lt;ref name=&amp;quot;yc_20190529_carmack-ffmpeg-color&amp;quot;&amp;gt;[[John Carmack]].  ([[2019-05-29]]).  “[https://news.ycombinator.com/item?id=20036710 Adventures with ffmpeg and color ranges]”.  &#039;&#039;[[ycombinator.com]]&#039;&#039;.  Accessed [[2026-01-22]].  “&amp;lt;code&amp;gt;ffmpeg -i source.mp4 -c:v libx265 -pix_fmt yuvj420p dest.mp4&amp;lt;/code&amp;gt;”.  &amp;lt;/ref&amp;gt;{{bkc|[[2026-01-22]]: Use &amp;lt;code&amp;gt;$ ffprobe DSC00123.JPG&amp;lt;/code&amp;gt; to find the color space of the input [[JPEG]] file. For example: &amp;lt;code&amp;gt;Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown)&amp;lt;/code&amp;gt; means &amp;lt;code&amp;gt;-pix_fmt yuvj422p&amp;lt;/code&amp;gt; should be the option provided to &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
 $ ffmpeg -nostdin -pattern_type glob -i &#039;*.JPG&#039; -c:v libx264 -r 60 -preset veryslow -crf 18 -pix_fmt yuvj420p output4.mp4&lt;br /&gt;
 $ ffmpeg -nostdin -pattern_type glob -i &#039;*.JPG&#039; -c:v libx264 -r 60 -preset veryslow -crf 26 -pix_fmt yuvj420p output4.mp4&lt;br /&gt;
&lt;br /&gt;
Export [[SNES]] [[SPC]] audio.&amp;lt;ref name=&amp;quot;&amp;quot;&amp;gt;[[Kaz Wolfe]].  ([[2017-03-28]]).  “[https://askubuntu.com/a/897694/ SPC to WAV command-line]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2026-04-13]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffmpeg -i track1.spc track1.flac&lt;br /&gt;
&lt;br /&gt;
==== Quality of life ====&lt;br /&gt;
Hide verbose configuration banner. (e.g. &amp;lt;code&amp;gt;built with gcc 11… configuration: --prefix=/usr…&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ ffmpeg -hide_banner&lt;br /&gt;
&lt;br /&gt;
==== Encode video ====&lt;br /&gt;
Encode video using [[VP9]] codec with 2 passes and tile-based multithreading.&amp;lt;ref name=&amp;quot;ffmpeg_2024_vp9-encoding&amp;quot;&amp;gt;“[https://trac.ffmpeg.org/wiki/Encode/VP9 FFmpeg and VP9 Encoding Guide]”.  ([[2024-01]]).  &#039;&#039;[[ffmpeg.org]]&#039;&#039;.  Accessed [[2024-05-23]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
fin=input.mkv;&lt;br /&gt;
ffmpeg -nostdin -i &amp;quot;$fin&amp;quot; -c:v libvpx-vp9 -row-mt 1 -b:v 0 -crf 18 -pass 1 -f null /dev/null &amp;amp;&amp;amp; \&lt;br /&gt;
ffmpeg -nostdin -i &amp;quot;$fin&amp;quot; -c:v libvpx-vp9 -row-mt 1 -b:v 0 -crf 18 -pass 2 &amp;quot;${fin%.mkv}.webm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specify a constant rate factor (CRF)&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 18 -c:a copy output.mp4&lt;br /&gt;
&lt;br /&gt;
Clip a video at CRF 18 and encode audio to [[OPUS]].&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -c:v libx264 -preset slow -crf 18 -c:a libopus -b:a 128k -avoid_negative_ts 1 output.mp4&lt;br /&gt;
&lt;br /&gt;
Process multiple videos in a [[Bash]] while loop. (Avoid [[stdin]] conflict with &amp;lt;code&amp;gt;-nostdin&amp;lt;/code&amp;gt; option)&amp;lt;ref name=&amp;quot;bashfaq_20221030_089stdin&amp;quot;&amp;gt;“[https://mywiki.wooledge.org/BashFAQ/089 BashFAQ/089 I&#039;m reading a file line by line and running ssh or ffmpeg, only the first line gets processed!]”.  ([[2022-10-30]]).  &#039;&#039;mywiki.wooledge.org&#039;&#039;.  Accessed [[2023-07-29]].  [https://web.archive.org/web/20230723080923/https://mywiki.wooledge.org/BashFAQ/089 Archived] from the original on [[2023-07-23]].  &amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;se_20220922_bashvarffmpeg&amp;quot;&amp;gt;[[roaima]].  ([[2022-09-22]]).  “[https://unix.stackexchange.com/a/718279 Bash variable truncated when passed into ffmpeg]”.  &#039;&#039;[[unix.stackexchange.com]]&#039;&#039;.  Accessed [[2023-07-29]].  [https://web.archive.org/web/20230729161626/https://unix.stackexchange.com/questions/718277/bash-variable-truncated-when-passed-into-ffmpeg/718279#718279 Archived] from the original on [[2023-07-29]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 while IFS= read -r file; do&lt;br /&gt;
   ffmpeg -nostdin -i &amp;quot;$file&amp;quot; -c:v libx264 -c:a aac &amp;quot;${file%.avi}&amp;quot;.mkv&lt;br /&gt;
 done &amp;lt; &amp;lt;(find . -name &#039;*.avi&#039;)&lt;br /&gt;
&lt;br /&gt;
=====Apply video filters=====&lt;br /&gt;
Create a 1-minute 60 fps time lapse video from 3 hours of 30 fps input.&lt;br /&gt;
: From videos, create a file list then run &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt; on the list.&lt;br /&gt;
 $ for f in ./*.MP4; do echo &amp;quot;file &#039;$PWD/$f&#039;&amp;quot; &amp;gt;&amp;gt; filelist.txt; done&lt;br /&gt;
&lt;br /&gt;
: Create the 60 fps (&amp;lt;code&amp;gt;-r 60&amp;lt;/code&amp;gt;) timelapse of 3 hours reduced into 1 minute. The &amp;lt;code&amp;gt;setpts&amp;lt;/code&amp;gt; factor is equal to &amp;lt;code&amp;gt;(duration out)/(duration in)*(fps out)/(fps in)&amp;lt;/code&amp;gt;. So, &amp;lt;code&amp;gt;(1*60)/(3*60*60)*(60/30) ≈ 0.01111&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ ffmpeg -nostdin -f concat -safe 0 -i filelist.txt -vf &amp;quot;setpts=0.01111*PTS&amp;quot; -an -r 60 output_timelapse.mp4&lt;br /&gt;
&lt;br /&gt;
Apply a temporal median filter across a radius of 10 frames.&amp;lt;ref name=&amp;quot;ffmpeg_2024_filter-tmedian&amp;quot;&amp;gt;“[https://ffmpeg.org/ffmpeg-filters.html#tmedian 11.259 tmedian]”.  (n.d.).  &#039;&#039;[[ffmpeg.org]]&#039;&#039;.  Accessed [[2024-09-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffmpeg -f -i input.mp4 -vf &amp;quot;tmedian=radius=10:planes=15:percentile=0.5&amp;quot; -an output.mp4&lt;br /&gt;
&lt;br /&gt;
Apply both a time lapse and a temporal median filter for several &amp;lt;code&amp;gt;.[[MP4]]&amp;lt;/code&amp;gt; files.&lt;br /&gt;
 $ for f in ./*.MP4; do echo &amp;quot;file &#039;$PWD/$f&#039;&amp;quot; &amp;gt;&amp;gt; filelist.txt; done;&lt;br /&gt;
 $ ffmpeg -f concat -safe 0 -i filelist.txt -vf &amp;quot;setpts=0.01111*PTS, tmedian=radius=10:planes=15:percentile=0.5&amp;quot; -an -r 60 -crf 30 output_timelapse_crf30_median.mp4&lt;br /&gt;
&lt;br /&gt;
==== Split a video file into roughly equal segments ====&lt;br /&gt;
Reference: https://unix.stackexchange.com/a/212518/411854&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c copy -map 0 -segment_time 00:20:00 -f segment -reset_timestamps 1 output%03d.mp4&lt;br /&gt;
&lt;br /&gt;
==== Combine video files into a single file ====&lt;br /&gt;
Reference: https://trac.ffmpeg.org/wiki/Concatenate&lt;br /&gt;
&lt;br /&gt;
 # this is a comment of the file named mylist.txt&lt;br /&gt;
 file &#039;/path/to/file1.wav&#039;&lt;br /&gt;
 file &#039;/path/to/file2.wav&#039;&lt;br /&gt;
 file &#039;/path/to/file3.wav&#039;&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.wav&lt;br /&gt;
&lt;br /&gt;
==== Add subtitles to a video file ====&lt;br /&gt;
Add multiple [[ASS]] subtitle files to a single [[MP4]] video file.&amp;lt;ref&amp;gt;{{bk}}: [[2024-03-01]]: See [[ffmpeg]]ʼs [https://trac.ffmpeg.org/wiki/Map &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt;] option. Order is important.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i input.mp4 \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.en-US.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.es-US.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.id.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.ja.ass \&lt;br /&gt;
       -map 0:v -map 0:a \&lt;br /&gt;
       -map 1 -map 2 -map 3 -map 4 \&lt;br /&gt;
       -metadata:s:s:0 language=eng \&lt;br /&gt;
       -metadata:s:s:1 language=spa \&lt;br /&gt;
       -metadata:s:s:2 language=ind \&lt;br /&gt;
       -metadata:s:s:3 language=jpn \&lt;br /&gt;
       -c copy \&lt;br /&gt;
       -c:s ass output.mkv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[file]] ===&lt;br /&gt;
Classify file type.&lt;br /&gt;
&lt;br /&gt;
Classify the file &amp;lt;code&amp;gt;myfile.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ file myfile.txt&lt;br /&gt;
&lt;br /&gt;
Classify the executable &amp;lt;code&amp;gt;/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ file /bin/bash&lt;br /&gt;
 /bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2f77b36371c214e11670c7d9d92727e9a49f626b, for GNU/Linux 3.2.0, stripped&lt;br /&gt;
&lt;br /&gt;
=== [[ffprobe]] ===&lt;br /&gt;
Get audio duration in seconds as a decimal number.&amp;lt;ref name=&amp;quot;so_20110604_duration-audio-file&amp;quot;&amp;gt;[https://stackoverflow.com/users/200265/louise louise].  ([[2011-06-04]]).  “[https://stackoverflow.com/a/22243834/10850071 How to extract duration time from ffmpeg output?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-02-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot; -show_entries format=duration -v quiet -of csv=&amp;quot;p=0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
: Get audio duration in seconds of all &amp;lt;code&amp;gt;.flac&amp;lt;/code&amp;gt; files in the working directory with [[bc]].&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
dur=&amp;quot;0.0&amp;quot;; while read -r line; do&lt;br /&gt;
  line_dur=&amp;quot;$(ffprobe -i &amp;quot;$line&amp;quot; -show_entries format=duration -v quiet -of csv=&amp;quot;p=0&amp;quot;)&amp;quot;;&lt;br /&gt;
  dur=&amp;quot;$(echo &amp;quot;$dur + $line_dur&amp;quot; | bc -l)&amp;quot;;&lt;br /&gt;
done &amp;lt; &amp;lt;(find . -type f -name &amp;quot;*.flac&amp;quot;);&lt;br /&gt;
echo &amp;quot;$dur&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get bitrate in integer bytes.&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot;; -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 &lt;br /&gt;
&lt;br /&gt;
Get chapter times.&amp;lt;ref name=&amp;quot;se_20190425_ffmpeg-chapters&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/349887/nemo Nemo].  ([[2019-04-25]]).  “[https://unix.stackexchange.com/a/515371 Using ffmpeg to split an Audible audio-book into chapters?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-01-20]].  &amp;lt;/ref&amp;gt;&amp;lt;ref group=fn&amp;gt;{{bk}}: See &amp;lt;code&amp;gt;[[BK-2020-03]]:user/mw_get_audiobook_chapters.sh&amp;lt;/code&amp;gt;.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot; -print_format json -show_chapters -sexagesimal&lt;br /&gt;
&lt;br /&gt;
=== [[find]] ===&lt;br /&gt;
Outputs newline-delimited (default) list of paths of files or directories matching specified filters.&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; directory recursively.&lt;br /&gt;
 $ find /path/to/dir&lt;br /&gt;
&lt;br /&gt;
List all files in working directory recursively&lt;br /&gt;
 $ find . -type f&lt;br /&gt;
&lt;br /&gt;
List all directories in working directory recursively&lt;br /&gt;
 $ find . -type d&lt;br /&gt;
&lt;br /&gt;
Search &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; for files ending in &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.JPG&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ find $HOME/ -type f -iname &amp;quot;*.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get file sizes, via [[du]], of all files in the working directory recursively&lt;br /&gt;
 $ find . -type f -exec du -b &#039;{}&#039; \;&lt;br /&gt;
 $ find . -type f -exec du -b &#039;{}&#039; +;  # performs fewer calls to &#039;du&#039;&lt;br /&gt;
&lt;br /&gt;
: Get file sizes of all files in the working directory recursively &#039;&#039;without&#039;&#039; calling [[du]].&lt;br /&gt;
 $ find . -type f -printf &#039;%s\t%p\n&#039;  # newline-terminated&lt;br /&gt;
 $ find . -type f -printf &#039;%s\t%p\0&#039;  # null-terminated (for feeding to &#039;shuf -z&#039; or &#039;cut -z&#039;)&lt;br /&gt;
&lt;br /&gt;
List all files and directories within the working directory.&lt;br /&gt;
 $ find . -maxdepth 1&lt;br /&gt;
&lt;br /&gt;
List all files and directories precisely 4 subdirectories deep&lt;br /&gt;
 $ find . -mindepth 4 -maxdepth 4&lt;br /&gt;
&lt;br /&gt;
List all files in the working directory recursively, following symlinks up to a maximum depth of 10 subdirectories deep&lt;br /&gt;
 $ find -L . -maxdepth 10 -type f&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the working directory starting with a &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; (i.e. list all dotfiles and dotdirs)&lt;br /&gt;
 $ find . -name &amp;quot;.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the working directory starting with a &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ find . ! -name &amp;quot;.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
List all files in the working directory recursively except those ending in either &amp;lt;code&amp;gt;.ots&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ots.bak&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ find . -type f ! \( -name &amp;quot;*.ots&amp;quot; -or -name &amp;quot;*.ots.bak&amp;quot; \)&lt;br /&gt;
&lt;br /&gt;
Find files in the working directory of a minimum size. (e.g. greater than but not equal to 1 MiB)&lt;br /&gt;
 $ find . -type f -size +$((1024 * 1024))c  # calc MiB&lt;br /&gt;
 $ find . -type f -size +$((1024 ** 2))c    # calc MiB&lt;br /&gt;
 $ find . -type f -size +1048576c           # use bytes&lt;br /&gt;
 $ find . -type f -size +1M                 # do not use due to rounding issues&lt;br /&gt;
&lt;br /&gt;
Find files in the working directory of a maximum size. (e.g. less than but not equal to 1 MiB)&lt;br /&gt;
 $ find /path/to/dir -type f -size -1048576c  # use -1048576c instead of -1M due to rounding issues&lt;br /&gt;
&lt;br /&gt;
Find files in &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; older than a certain date (e.g. &amp;lt;code&amp;gt;2024-01-01&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ find /path/to/search -not -newermt 2024-01-01&lt;br /&gt;
&lt;br /&gt;
List files sorted by modification date&lt;br /&gt;
 $ find /path/to/directory -type f -printf &#039;%T@ %p\n&#039; | sort -n | cut -d&#039; &#039; -f2-&lt;br /&gt;
&lt;br /&gt;
List all &amp;lt;code&amp;gt;.json&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; that lack an accompanying &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt; file. (e.g. show &amp;lt;code&amp;gt;file.json&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt; does not exist.&lt;br /&gt;
 $ while read -r line; do if [[ ! -f &amp;quot;${line%.json}.txt&amp;quot; ]]; then declare -p line; fi; done &amp;lt; &amp;lt;(find /path/to/dir -type f -name &amp;quot;*.json&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Perform a command (e.g. &amp;lt;code&amp;gt;ots s&amp;lt;/code&amp;gt; on every file via null-terminated pipe to [[xargs]] in random order.&lt;br /&gt;
 $ find . -type f -print0 | shuf --zero-terminated | xargs --null ots s&lt;br /&gt;
&lt;br /&gt;
=== [[gcc]] ===&lt;br /&gt;
&#039;&#039;Available in Debian &amp;lt;code&amp;gt;build-essential&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
The GNU C Compiler&lt;br /&gt;
&lt;br /&gt;
Compile C-code specified in the command line.&amp;lt;ref name=&amp;quot;se_20141024_gccbashprocsub&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/14034/celada Celada].  ([[2014-10-24]]).  “[https://unix.stackexchange.com/a/164109/411854 Why does BASH process substitution not work with some commands?]”.  Accessed [[2023-07-14]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ gcc -x c &amp;lt;(echo &#039;int main(){return 0;}&#039;)&lt;br /&gt;
 $ echo &#039;int main(){return 0;}&#039; | gcc -x c -&lt;br /&gt;
 $ gcc -x c -o hello &amp;lt;(echo -e &amp;quot;#include &amp;lt;stdio.h&amp;gt;\n main()\n{\nprintf(\&amp;quot;hello, \&amp;quot;);\nprintf(\&amp;quot;world\&amp;quot;);\nprintf(\&amp;quot;\\\n\&amp;quot;);\n}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== [[git]] ===&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|git}} &lt;br /&gt;
&lt;br /&gt;
See recent checkout, commit, or other operations by commit reference. (e.g. to find a commit lost because it was on a detached HEAD).  &lt;br /&gt;
 $ git reflog&lt;br /&gt;
&lt;br /&gt;
To automatically sign merges (not default).&lt;br /&gt;
 $ git config merge.gpgsign true&lt;br /&gt;
 $ git -c merge.gpgsign=&#039;true&#039; pull&lt;br /&gt;
&lt;br /&gt;
See remotes.&lt;br /&gt;
 $ git remote -v&lt;br /&gt;
&lt;br /&gt;
Rename a remote. ([https://support.beanstalkapp.com/article/16-how-do-i-rename-an-existing-git-remote ref])&lt;br /&gt;
 $ git remote rename beanstalk origin&lt;br /&gt;
&lt;br /&gt;
Export a git bundle (repository backup)&lt;br /&gt;
 $ git bundle create filename.bundle --all&lt;br /&gt;
&lt;br /&gt;
Trace git operations (especially those involving &amp;lt;code&amp;gt;gpg&amp;lt;/code&amp;gt; signing operations). ([https://gist.github.com/paolocarrasco/18ca8fe6e63490ae1be23e84a7039374 ref])&lt;br /&gt;
 $ GIT_TRACE=1 git commit&lt;br /&gt;
&lt;br /&gt;
Get current commit, short git log entry, and ISO-8601 date&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=iso&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=format:&amp;quot;%Y-%m-%d&amp;quot;  #shorter date&lt;br /&gt;
&lt;br /&gt;
Delete a local branch named `develop` (assuming `develop` is not checked out).&lt;br /&gt;
 $ git branch -d develop&lt;br /&gt;
&lt;br /&gt;
Untrack but don&#039;t remove committed file. ([https://stackoverflow.com/questions/12481639/remove-files-from-git-commit#comment28735458_12481977 Ref/attrib]; useful if you tracked something that shouldn&#039;t be tracked like &amp;lt;code&amp;gt;repo.git/config&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ git rm --cached path/to/committed/file&lt;br /&gt;
&lt;br /&gt;
Pull branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; from remote &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to unchecked out local branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; without altering working tree (useful if worktree files are being used by something else).                                                                                                                                                                                                                                                                           &lt;br /&gt;
 $ git pull origin develop:develop&lt;br /&gt;
&lt;br /&gt;
Set single configuration parameters for the duration of a single command.&lt;br /&gt;
: Disable checking [[GPG]] signatures when running &amp;lt;/code&amp;gt;$ git log&amp;lt;/code&amp;gt;. (see [https://stackoverflow.com/a/19841177 ref])&lt;br /&gt;
 $ git -c log.showSignature=&#039;false&#039; log&lt;br /&gt;
&lt;br /&gt;
: Commit and/or tag with &amp;lt;code&amp;gt;ots --wait&amp;lt;/code&amp;gt; option.&lt;br /&gt;
 $ pathOtsWait=&amp;quot;/home/debuser/.local/share/ots/ots-git-gpg-wrapper-wait.sh&amp;quot;;&lt;br /&gt;
 $ git -c gpg.program=&amp;quot;$pathOtsWait&amp;quot; commit -S&lt;br /&gt;
 $ git -c gpg.program=&amp;quot;$pathOtsWait&amp;quot; tag --sign &amp;quot;some_tag_name&amp;quot; main&lt;br /&gt;
&lt;br /&gt;
Set a remote branch `origin/develop` as the upstream branch for a local branch named `develop`.&amp;lt;ref name=&amp;quot;git_20190816_gitbranch&amp;quot;&amp;gt;“[https://git-scm.com/docs/git-branch/2.23.0 git-branch - List, create, or delete branches]”. ([[2019-08-16]]). &#039;&#039;git-scm.com&#039;&#039;. Accessed [[2023-04-20]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git branch --set-upstream-to=origin/develop develop&lt;br /&gt;
&lt;br /&gt;
Get current commit, short git log entry, and ISO-8601 date&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=iso&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=format:&amp;quot;%Y-%m-%d&amp;quot;  #shorter date&lt;br /&gt;
&lt;br /&gt;
Delete a local branch named `develop` (assuming `develop` is not checked out).&lt;br /&gt;
 $ git branch -d develop&lt;br /&gt;
&lt;br /&gt;
Untrack but don&#039;t remove committed file. ([https://stackoverflow.com/questions/12481639/remove-files-from-git-commit#comment28735458_12481977 Ref/attrib]; useful if you tracked something that shouldn&#039;t be tracked like &amp;lt;code&amp;gt;repo.git/config&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ git rm --cached path/to/committed/file&lt;br /&gt;
&lt;br /&gt;
Pull branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; from remote &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to unchecked out local branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; without altering working tree (useful if worktree files are being used by something else).                                                                                                                                                                                                                                                                           &lt;br /&gt;
 $ git pull origin develop:develop&lt;br /&gt;
&lt;br /&gt;
Set a remote branch `origin/develop` as the upstream branch for a local branch named `develop`.&amp;lt;ref name=&amp;quot;git_20190816_gitbranch&amp;quot;&amp;gt;“[https://git-scm.com/docs/git-branch/2.23.0 git-branch - List, create, or delete branches]”. ([[2019-08-16]]). &#039;&#039;git-scm.com&#039;&#039;. Accessed [[2023-04-20]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git branch --set-upstream-to=origin/develop develop&lt;br /&gt;
&lt;br /&gt;
Disable git credential helper for a single command.&amp;lt;ref name=&amp;quot;so_20170517_gitdisablecredhelp&amp;quot;&amp;gt;[https://stackoverflow.com/users/6309/vonc VonC].  ([[2017-05-17]]).  “[https://stackoverflow.com/a/44033298 How do I disable git&#039;s credential helper for a single repository?]”.  &#039;&#039;[[Stack Overflow]]&#039;&#039;.  Accessed [[2023-08-02]].  [https://web.archive.org/web/20230802203919/https://stackoverflow.com/questions/13198143/how-do-i-disable-gits-credential-helper-for-a-single-repository/44033298 Archived] from the original on [[2023-08-02]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git -c credential.helper= pull origin refs/heads/master&lt;br /&gt;
&lt;br /&gt;
=== [[gpg]] ===&lt;br /&gt;
&#039;&#039;See also [[GnuPG]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|gpg}}&lt;br /&gt;
&lt;br /&gt;
Verify a file named &amp;lt;code&amp;gt;SHA256SUMS&amp;lt;/code&amp;gt; against detached signature file &amp;lt;code&amp;gt;SHA256SUMS.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ gpg --verify SHA256SUMS.gpg SHA256SUMS&lt;br /&gt;
&lt;br /&gt;
Use a temporary keyring&lt;br /&gt;
 $ gpg --no-default-keyring --keyring /dev/shm/temp-keyring.kbx&lt;br /&gt;
&lt;br /&gt;
Refresh keys&lt;br /&gt;
 $ gpg --keyserver keys.openpgp.org --receive-keys deadbeef deadbeef&lt;br /&gt;
 $ gpg --keyserver keyserver.ubuntu.com --receive-keys deadbeef deadbeef&lt;br /&gt;
&lt;br /&gt;
Verify a file (e.g. &amp;lt;code&amp;gt;SHA256SUMS&amp;lt;/code&amp;gt;) against a detached signature (e.g. &amp;lt;code&amp;gt;SHA256SUMS.gpg&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ gpg --verify SHA256SUMS.gpg SHA256SUMS&lt;br /&gt;
&lt;br /&gt;
=== grep ===&lt;br /&gt;
Search for a process named “&amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt;” with &amp;lt;code&amp;gt;ps aux&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;grep bash&amp;lt;/code&amp;gt; but exclude matches of “&amp;lt;code&amp;gt;grep bash&amp;lt;/code&amp;gt;&amp;quot; itself.&lt;br /&gt;
 $ ps aux | grep &amp;quot;bas[h]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ignore binary matches with &amp;lt;code&amp;gt;-I&amp;lt;/code&amp;gt; option.&lt;br /&gt;
 $ grep &amp;quot;a&amp;quot; largeProgram.exe &amp;amp;&amp;amp; echo &amp;quot;Match found.&amp;quot; || echo &amp;quot;No match found.&amp;quot;&lt;br /&gt;
 grep: get_put_char: binary file matches&lt;br /&gt;
 Match found.&lt;br /&gt;
 $ grep -I &amp;quot;a&amp;quot; largeProgram.exe &amp;amp;&amp;amp; echo &amp;quot;Match found.&amp;quot; || echo &amp;quot;No match found.&amp;quot;&lt;br /&gt;
 No match found.&lt;br /&gt;
&lt;br /&gt;
Use [[find]] with [[parallel]] to recursively search a file tree for text matches.&lt;br /&gt;
 $ find . -type f -name &amp;quot;*.tsv&amp;quot; | parallel grep -iHIC3 --color=always -e &#039;mexico&#039; &#039;{}&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;-name &amp;quot;*.tsv&amp;quot;&amp;lt;/code&amp;gt;: Search only files with names ending in &amp;lt;code&amp;gt;.tsv&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt;: Ignore character capitalization.&lt;br /&gt;
: &amp;lt;code&amp;gt;-H&amp;lt;/code&amp;gt;: Print name of file containing match.&lt;br /&gt;
: &amp;lt;code&amp;gt;-C3&amp;lt;/code&amp;gt;: Show 3 lines before and after match.&lt;br /&gt;
: &amp;lt;code&amp;gt;-I&amp;lt;/code&amp;gt;: Do not search binary files.&lt;br /&gt;
: &amp;lt;code&amp;gt;-e &#039;mexico&#039;&amp;lt;/code&amp;gt;: Search for lines containing the string &amp;lt;code&amp;gt;mexico&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{}&#039;&amp;lt;/code&amp;gt;: Filename word placeholder for [[parallel]].&lt;br /&gt;
&lt;br /&gt;
=== [[gs]] ===&lt;br /&gt;
See also [[Ghostscript]].&lt;br /&gt;
&lt;br /&gt;
{{Anchor|pdf-no-img}}Remove raster images from a PDF.&amp;lt;ref name=&amp;quot;so_20160616_removepdfraster&amp;quot;&amp;gt;[https://stackoverflow.com/users/359307/kurt-pfeifle Kurt Pfeifle].  ([[2016-06-16]]).  “[https://stackoverflow.com/a/37858893 ]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2023-10-28]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ gs -o noimages.pdf -sDEVICE=pdfwrite -dFILTERIMAGE input.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[Regular Expressions]] ====&lt;br /&gt;
&lt;br /&gt;
Show lines that match pattern.&lt;br /&gt;
 $ grep &#039;some pattern&#039; -- file.txt&lt;br /&gt;
&lt;br /&gt;
Show lines that don&#039;t match pattern.&lt;br /&gt;
 $ grep -v &#039;some pattern&#039; -- file.txt&lt;br /&gt;
&lt;br /&gt;
Match integers of a range of numbers of digits (e.g. 2 to 3)&lt;br /&gt;
 $ myVar=&amp;quot;$(printf &amp;quot;S2 E3\nS57 E11\nS131 E51\nS7212 E3\n&amp;quot;)&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot;&lt;br /&gt;
 S2 E3&lt;br /&gt;
 S57 E11&lt;br /&gt;
 S131 E51&lt;br /&gt;
 S7212 E3&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot; | grep -E &amp;quot;S[0-9]{2,3} &amp;quot;&lt;br /&gt;
 S57 E11&lt;br /&gt;
 S131 E51&lt;br /&gt;
&lt;br /&gt;
Match http URLs in a text file (see [https://unix.stackexchange.com/a/181258 ref])&lt;br /&gt;
 $ cat input.txt | grep -Eo &amp;quot;(http|https)://[a-zA-Z0-9./?=_%:-]*&amp;quot; | sort -u&lt;br /&gt;
&lt;br /&gt;
=== [[gunzip]] ===&lt;br /&gt;
See [[{{PAGENAME}}#gzip|#gzip]].&lt;br /&gt;
&lt;br /&gt;
=== [[gzip]] ===&lt;br /&gt;
Transform a &amp;lt;code&amp;gt;sql.gz&amp;lt;/code&amp;gt; archive into a &amp;lt;code&amp;gt;sql.xz&amp;lt;/code&amp;gt; archive.&lt;br /&gt;
 $ gunzip -c archivo.sql.gz | xz -z - &amp;gt; archivo.sql.xz&lt;br /&gt;
&lt;br /&gt;
=== [[head]] ===&lt;br /&gt;
Note: Consider using in tandem with [[#tail|tail]] when printing ranges of lines from large files.&lt;br /&gt;
&lt;br /&gt;
Print first 3 lines.&lt;br /&gt;
 $ seq 1 10 | head -n3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
&lt;br /&gt;
Print all but last 3 lines.&lt;br /&gt;
 $ seq 1 10 | head -n-3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
{{Anchor|head-slice}}{{Anchor|head-slice-bytes}}Print 4th to 7th bytes of a non-seekable stream (stdin, FIFO, socket). For seekable file, see [[#tail-slice|#tail]].&lt;br /&gt;
 $ selStart=$((4-1)); selEnd=$((7-1)); selCount=$((selEnd-selStart+1));&lt;br /&gt;
 $ byteSource.sh | head -c $((selEnd+1)) | tail -c $selCount;&lt;br /&gt;
&lt;br /&gt;
=== [[iftop]] ===&lt;br /&gt;
Show data traffic (i.e. [[bandwidth]] usage) on network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;. Note: consider using in tandem with [[nethogs]].&lt;br /&gt;
 $ sudo iftop -i eth0&lt;br /&gt;
&lt;br /&gt;
=== [[iotop]] ===&lt;br /&gt;
Show disk write rates for a given process by PID.&lt;br /&gt;
 $ iotop -p PID&lt;br /&gt;
&lt;br /&gt;
List accumulative (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;) disk read/write rates for all &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; processes via process PIDs (&amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt;), updating every 10 seconds (&amp;lt;code&amp;gt;-d10&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ sudo iotop -ad10 $(pgrep &amp;quot;tar|xz&amp;quot; | xargs -I &amp;quot;{}&amp;quot; echo -n &amp;quot;-p {} &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== [[ip]] ===&lt;br /&gt;
Show available network interfaces.&lt;br /&gt;
 $ ip link show&lt;br /&gt;
&lt;br /&gt;
=== [[ImageMagick]] ===&lt;br /&gt;
Convert a [[PNG]] file into a [[JPEG]] at 90% quality.&lt;br /&gt;
  $ convert input.png -quality 90 output.jpg&lt;br /&gt;
&lt;br /&gt;
Convert a [[GIF]] into a set of frames (Note: May fail with some optimized GIF formats)&lt;br /&gt;
 $ convert Year_2038_problem.gif output%02d.gif&lt;br /&gt;
&lt;br /&gt;
=== [[jdupes]] ===&lt;br /&gt;
List duplicates in DIR greater than or equal to 100MB.&lt;br /&gt;
 $ jdupes -X size+=:100MB DIR -r&lt;br /&gt;
&lt;br /&gt;
List duplicates within DIR1 (not following subdirectories) and within DIR2 (following subdirectories)&lt;br /&gt;
 $ jdupes -X size+=:100MB DIR1 -R DIR2&lt;br /&gt;
&lt;br /&gt;
List duplicates within DIR1, DIR2, and DIR3 recursively, listing duplicates of DIR1 first&lt;br /&gt;
 $ jdupes -r -O DIR1 DIR2 DIR3&lt;br /&gt;
&lt;br /&gt;
=== [[journalctl]] ===&lt;br /&gt;
Show previous 1 hour of logs:&lt;br /&gt;
 $ journalctl --utc --all --output=short-iso --since=-1h&lt;br /&gt;
&lt;br /&gt;
Show logs since &amp;lt;code&amp;gt;2023-01-10T09:15&amp;lt;/code&amp;gt; and before &amp;lt;code&amp;gt;2023-01-10T13:00&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $ journalctl --utc --all --output=short-iso --since=\&amp;quot;2023-01-10 09:15\&amp;quot; --until=\&amp;quot;2023-01-10 13:00\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [[less]] ===&lt;br /&gt;
Display file as scrollable buffer.&lt;br /&gt;
 $ less file.txt&lt;br /&gt;
&lt;br /&gt;
Display file and display live updates.&lt;br /&gt;
 $ less +F file.txt&lt;br /&gt;
&lt;br /&gt;
Display file while truncating display of long lines.&lt;br /&gt;
 $ less -S file.txt&lt;br /&gt;
&lt;br /&gt;
Display file while interpreting [[ANSI]] color codes (e.g. &amp;lt;code&amp;gt;$ jq -C &#039;.&#039; file.json | less --RAW-CONTROL-CHARS&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ less --RAW-CONTROL-CHARS&lt;br /&gt;
&lt;br /&gt;
=== [[ln]] ===&lt;br /&gt;
Create symlink named &amp;lt;code&amp;gt;my_linked_dir&amp;lt;/code&amp;gt; to a directory at path &amp;lt;code&amp;gt;~/some/long/path/my_dir&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ ln -sfn ~/some/long/path/my_dir my_linked_dir&lt;br /&gt;
&lt;br /&gt;
=== [[locate]] ===&lt;br /&gt;
Install on [[ubuntu]] 24.{{bkc|[[2024-12-11]]: Apparently this package used to be part of GNU &amp;lt;code&amp;gt;findutils&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
  $ sudo apt install locate&lt;br /&gt;
&lt;br /&gt;
=== [[ls]] ===&lt;br /&gt;
Note: assumes &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; from GNU Coreutils 8.32&lt;br /&gt;
&lt;br /&gt;
List all files, sorted by [[ISO-8601]]-style date.&lt;br /&gt;
 $ ls -alh --time-style=long-iso | sort -k6,7&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei  88K 2005-08-19 19:18 file1&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 930K 2010-07-28 02:01 file2&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 2.4M 2016-05-18 14:52 file3&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 7.2K 2021-05-11 15:29 file4&lt;br /&gt;
&lt;br /&gt;
=== [[lsof]] ===&lt;br /&gt;
Display all files opened by a process by a single PID.&amp;lt;ref name=&amp;quot;tecmint_20230714_lsof-examples&amp;quot; /&amp;gt;&lt;br /&gt;
 $ lsof -p PID&lt;br /&gt;
&lt;br /&gt;
Display all files opened by a process by name (e.g. [[xz]])&amp;lt;ref name=&amp;quot;tecmint_20230714_lsof-examples&amp;quot;&amp;gt;[[Narad Shrestha]].  ([[2023-07-14]]).  “[https://www.tecmint.com/10-lsof-command-examples-in-linux/ How to Use ‘lsof’ Command to Check Open Files in Linux]”.  &#039;&#039;[[tecmint.com]]&#039;&#039;.  Accessed [[2024-01-05]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ while read -r line; do lsof -p &amp;quot;$line&amp;quot;; printf &amp;quot;\n&amp;quot;; done &amp;lt; &amp;lt;(pgrep xz)&lt;br /&gt;
&lt;br /&gt;
=== [[mail]] ===&lt;br /&gt;
Reference: https://devanswers.co/you-have-mail-how-to-read-mail-in-ubuntu/&lt;br /&gt;
&lt;br /&gt;
Commands:&lt;br /&gt;
 $ mail   # start mail&lt;br /&gt;
 &amp;amp; h$     # list latest messages&amp;lt;ref name=&amp;quot;johnkerl_19970428_unix-mail&amp;quot;&amp;gt;[[John Kerl]]  ([[1997-04-28]]).  “[https://www.johnkerl.org/doc/mail-how-to.html How to use the Unix command-line mail tool]”.  &#039;&#039;[[johnkerl.org]]&#039;&#039;.  Accessed [[2024-01-05]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 &amp;amp; 5      # read message 5&lt;br /&gt;
 &amp;amp; d 1    # delete message 1&lt;br /&gt;
 &amp;amp; q      # quit mail&lt;br /&gt;
&lt;br /&gt;
Send mail to self:&lt;br /&gt;
 $ mail -s &amp;quot;I&#039;m in your base&amp;quot; -- &amp;quot;$(whoami)&amp;quot; &amp;lt; &amp;lt;(printf &amp;quot;Killing your dudes.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Delete all mail&amp;lt;ref name=&amp;quot;so_20121117_deletemail&amp;quot;&amp;gt;[[timaschew]]. ([[2012-11-17]]). “[https://stackoverflow.com/a/13430307 How do I purge a linux mail box with huge number of emails? [closed]]”. &#039;&#039;Stack Overflow&#039;&#039;. Accessed [[2023-06-06]].&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ mail -N&lt;br /&gt;
 &amp;amp; d *&lt;br /&gt;
 &amp;amp; quit&lt;br /&gt;
&lt;br /&gt;
=== [[make]] ===&lt;br /&gt;
&#039;&#039;See [[GNU Make]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compile source code according to a file named &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
Note, even with [[GNU make]], column 1 indentations REQUIRE a tab (i.e. `\t`), not a space (`\s`).&amp;lt;ref name=&amp;quot;se_20210701_maketabs&amp;quot;&amp;gt;[https://retrocomputing.stackexchange.com/users/79/stephen-kitt Stephen Kitt].  ([[2021-07-01]]).  “[https://retrocomputing.stackexchange.com/a/20293 Why does make only accept tab-indentation?]”  &#039;&#039;Stack Exchange&#039;&#039;.  Accessed [[2023-07-10]]. [https://web.archive.org/web/20230528004825/https://retrocomputing.stackexchange.com/questions/20292/why-does-make-only-accept-tab-indentation Archived] from the original on [[2023-05-28]].&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile multiple source code files with a single `make all` command.&amp;lt;ref name=&amp;quot;so_20110510_makemultiplefiles&amp;quot;&amp;gt;[https://stackoverflow.com/users/714501/cnicutar cnicutar].  ([[2011-05-10]]).  “[https://stackoverflow.com/a/5950445/10850071 Makefile to compile multiple C programs?]”.  &#039;&#039;Stack Overflow&#039;&#039;.  Accessed [[2023-07-13]].  [https://web.archive.org/web/20230714044550/https://stackoverflow.com/questions/5950395/makefile-to-compile-multiple-c-programs/5950445 Archived] from the original on [[2023-07-14]].&amp;lt;/ref&amp;gt; `Makefile` contents:&lt;br /&gt;
&lt;br /&gt;
 all: program1 program2&lt;br /&gt;
 &lt;br /&gt;
 program1: program1.c&lt;br /&gt;
     gcc -o program1 program1.c&lt;br /&gt;
 &lt;br /&gt;
 program2: program2.c&lt;br /&gt;
     gcc -o program2 program2.c&lt;br /&gt;
&lt;br /&gt;
=== man ===&lt;br /&gt;
Display command manual.&lt;br /&gt;
&lt;br /&gt;
Show [[Bash]] manual.&lt;br /&gt;
 $ man bash&lt;br /&gt;
&lt;br /&gt;
=== [[mkdir]] ===&lt;br /&gt;
Create an empty directory called &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ mkdir some_dir&lt;br /&gt;
&lt;br /&gt;
Create an empty subdirectory at &amp;lt;code&amp;gt;some/path/some_dir&amp;lt;/code&amp;gt;, creating all the parent subdirectories as well.&lt;br /&gt;
 $ mkdir -p some/path/some_dir&lt;br /&gt;
&lt;br /&gt;
: This is equivalent to:&lt;br /&gt;
 $ mkdir some&lt;br /&gt;
 $ mkdir some/path&lt;br /&gt;
 $ mkdir some/path/some_dir&lt;br /&gt;
&lt;br /&gt;
=== [[mdadm]] ===&lt;br /&gt;
Software [[RAID]] manager.&lt;br /&gt;
&lt;br /&gt;
Check status of RAID device &amp;lt;code&amp;gt;/dev/md0&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;se_20120108_mmdadmcheck&amp;quot;&amp;gt;[[Gilles]]. ([[2012-01-08]]). “[https://unix.stackexchange.com/a/28642/411854 How to check &#039;mdadm&#039; RAIDs while running?]”. Accessed [[2023-03-26]]. [https://web.archive.org/web/20150925044124/http://unix.stackexchange.com/questions/28636/how-to-check-mdadm-raids-while-running/28642#28642 Archived] from the original on [[2015-09-25]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Check status of all RAID devices.&amp;lt;ref name=&amp;quot;se_20120108_mmdadmcheck&amp;quot; /&amp;gt;&lt;br /&gt;
 $ sudo cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
=== mimetype ===&lt;br /&gt;
Get file mimetype&lt;br /&gt;
 $ cat file.jpg | mimetype --stdin&lt;br /&gt;
&lt;br /&gt;
=== mktemp ===&lt;br /&gt;
Create a temporary directory.&lt;br /&gt;
 $ mktemp -d&lt;br /&gt;
 /tmp/tmp.FV7MlItXOs&lt;br /&gt;
&lt;br /&gt;
Create a temporary directory and store its name.&lt;br /&gt;
 $ myTempDir=&amp;quot;$(mktemp -d)&amp;quot;; declare -p myTempDir;&lt;br /&gt;
 declare -- myTempDir=&amp;quot;/tmp/tmp.kmHLhKvlQV&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Create a temporary file&lt;br /&gt;
 $ mktemp&lt;br /&gt;
 /tmp/tmp.lnq5aBZmuK&lt;br /&gt;
&lt;br /&gt;
Create a temporary file in a custom directory&lt;br /&gt;
 $ myDir=&amp;quot;$HOME/temp&amp;quot;; mkdir &amp;quot;$myDir&amp;quot;;&lt;br /&gt;
 $ mktemp -p &amp;quot;$myDir&amp;quot;&lt;br /&gt;
 /home/baltakatei/temp/tmp.YENA9Yp7lU&lt;br /&gt;
&lt;br /&gt;
Create a temporary file or directory with a custom name template.&lt;br /&gt;
 $ mktemp foo_XXX&lt;br /&gt;
 foo_yVu&lt;br /&gt;
 $ mktemp foo_XXXXXXXX&lt;br /&gt;
 foo_rVJOX8GE&lt;br /&gt;
 $ mktemp -d bar_XXXXXXXX&lt;br /&gt;
 bar_10Bt5tfy&lt;br /&gt;
&lt;br /&gt;
=== [[mpv]] ===&lt;br /&gt;
Use newline-delimited stdin list of file paths as playlist.&lt;br /&gt;
 $ find ~/Music/ -type f | mpv --playlist=-&lt;br /&gt;
&lt;br /&gt;
Enable shuffle&lt;br /&gt;
 $ mpv --shuffle&lt;br /&gt;
&lt;br /&gt;
Settings for fast playback (e.g. 2x){{bkc|[[2024-08-11]]: This option may cause issues with playback of some [[FLAC]] files.}}&lt;br /&gt;
 $ mpv --af=scaletempo=stride=15:overlap=1:search=15&#039;&lt;br /&gt;
&lt;br /&gt;
Play video with subtitle file&lt;br /&gt;
 $ mpv --embed-subs=&amp;quot;$filepath&amp;quot; video.mp4&lt;br /&gt;
&lt;br /&gt;
=== [[mv]] ===&lt;br /&gt;
Move a file or directory.&lt;br /&gt;
&lt;br /&gt;
Move file &amp;lt;code&amp;gt;some_file&amp;lt;/code&amp;gt; into directory &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt;, replacing &amp;lt;code&amp;gt;some_dir/some_file&amp;lt;/code&amp;gt; if it exists.&lt;br /&gt;
 $ mv some_file ./some_dir  # make sure &#039;some_dir&#039; is not a file&lt;br /&gt;
&lt;br /&gt;
: Perform move without replacement and throwing error if so.&lt;br /&gt;
 $ mv -p some_file ./some_dir&lt;br /&gt;
&lt;br /&gt;
=== [[neofetch]] ===&lt;br /&gt;
Show system information without art&lt;br /&gt;
 $ neofetch --off&lt;br /&gt;
&lt;br /&gt;
Show system information without formatting or art.&lt;br /&gt;
 $ neofetch --stdout&lt;br /&gt;
&lt;br /&gt;
=== [[nethogs]] ===&lt;br /&gt;
Show data traffic (i.e. [[bandwidth]] usage) by process on network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ sudo nethogs eth0&lt;br /&gt;
&lt;br /&gt;
: Toggle between data rates and total data amounts with `m`.&lt;br /&gt;
&lt;br /&gt;
=== [[notify-send]] ===&lt;br /&gt;
Note (Debian): Installed via the [[libnotify-bin]] package.&lt;br /&gt;
&lt;br /&gt;
Create a system notification:&lt;br /&gt;
 $ notify-send &amp;quot;title&amp;quot; &amp;quot;body&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [[openbox]] ===&lt;br /&gt;
A window manager for [[LxQt]] and [[Lubuntu]].&lt;br /&gt;
&lt;br /&gt;
Reload configuration files.{{bkc|[[2024-08-21]]: Such as those kept at &amp;lt;code&amp;gt;/usr/share/themes/Mikachu/openbox-3/themerc&amp;lt;/code&amp;gt;.  }}&amp;lt;ref name=&amp;quot;askubuntu_20161006_openbox-window-resize-grab-area&amp;quot;&amp;gt;[https://askubuntu.com/users/248158/dk-bose DK Bose].  ([[2016-10-06]]).  “[https://askubuntu.com/a/834022 Size of grab area for resizing window in lubuntu]”.  Accessed [[2024-08-21]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ openbox --reconfigure&lt;br /&gt;
&lt;br /&gt;
=== [[ots]] ===&lt;br /&gt;
Use [[OpenTimestamps]] ([https://opentimestamps.org/ website]) to timestamp files against the [[Bitcoin]] blockchain. Program by [[Peter Todd]], a [[Bitcoin Core]] developer.&lt;br /&gt;
&lt;br /&gt;
Install Opentimestamps on Ubuntu 24 via [[pipx]].{{bkc|[[2025-01-18]]: [[pipx]] recommended to install [[ots]] due to [[PEP 668]] ([https://peps.python.org/pep-0668/ link] mandating partitioning operating system environment from user-space. }} Provides the &amp;lt;code&amp;gt;ots&amp;lt;/code&amp;gt; executable.&lt;br /&gt;
 $ sudo apt install pipx&lt;br /&gt;
 $ pipx install opentimestamps-client&lt;br /&gt;
&lt;br /&gt;
Timestamp &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt;. Creates timestamp file &amp;lt;code&amp;gt;file.txt.ots&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ ots s file.txt&lt;br /&gt;
 $ ots stamp file.txt&lt;br /&gt;
&lt;br /&gt;
Upgrade a timestamp file. Creates a backup file (&amp;lt;code&amp;gt;file.txt.ots.bak&amp;lt;/code&amp;gt;) if necessary.&lt;br /&gt;
 $ ots upgrade file.txt.ots&lt;br /&gt;
 $ ots u file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Verify a timestamp file.&lt;br /&gt;
 $ ots verify file.txt.ots&lt;br /&gt;
 $ ots v file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Verify a specific file against a specific timestamp file.&lt;br /&gt;
 $ ots v -f file.txt file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Timestamp all files in working directory that lack a timestamp, running &amp;lt;code&amp;gt;ots&amp;lt;/code&amp;gt; on 1000 files at a time.&lt;br /&gt;
 $ din=&amp;quot;$(pwd)&amp;quot;; while read -r line; do if [[ ! -f &amp;quot;${line}.ots&amp;quot; ]]; then printf &amp;quot;%s\0&amp;quot; &amp;quot;$line&amp;quot;; fi; done &amp;lt; &amp;lt;(find &amp;quot;$din&amp;quot; -mindepth 1 -maxdepth 1 -type f ! -name &amp;quot;*.ots&amp;quot; | shuf; ) | xargs -0 -L 1000 ots s&lt;br /&gt;
&lt;br /&gt;
=== [[pandoc]] ===&lt;br /&gt;
Convert [[markdown]] text file into mediawiki code.&amp;lt;ref name=&amp;quot;so_20100926_markdown-to-mediawiki&amp;quot;&amp;gt;[https://stackoverflow.com/users/315013/applicative applicative].  ([[2010-09-26]]).  “[https://stackoverflow.com/a/3796608 Are there any tools to convert markdown to Wiki text in other formats]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-02-27]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ pandoc -f markdown -t mediawiki -o output.wc input.txt&lt;br /&gt;
&lt;br /&gt;
=== [[par2]] ===&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|par2}}&lt;br /&gt;
&lt;br /&gt;
Create parity files of &amp;lt;code&amp;gt;archive.tar.xz&amp;lt;/code&amp;gt; with default settings. &lt;br /&gt;
 $ par2 create archive.tar.xz.par2 archive.tar.xz&lt;br /&gt;
&lt;br /&gt;
=== [[GNU parallel|parallel]] ===&lt;br /&gt;
&#039;&#039;See [[GNU parallel]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Duplicate a set of directories (non-recursively) (e.g. home sub-directories). Metadata not copied.&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -mindepth 1 -maxdepth 1 -type d | parallel mkdir &amp;quot;$HOME/{}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hash every file in the home directory.&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel --jobs=&amp;quot;&amp;quot; sha256sum &#039;{}&#039;               # use all CPUs&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel --jobs=&amp;quot;25%&amp;quot; sha256sum &#039;{}&#039;  # use at most 25% of CPU cores&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel sha256sum &#039;{}&#039;               # &lt;br /&gt;
&lt;br /&gt;
Run a thread for every item in an array.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ myArray=(&amp;quot;jan&amp;quot;); myArray=(&amp;quot;feb&amp;quot;); myArray=(&amp;quot;mar&amp;quot;);&lt;br /&gt;
$ declare -p myArray&lt;br /&gt;
declare -a myArray=([0]=&amp;quot;jan&amp;quot; [1]=&amp;quot;feb&amp;quot; [2]=&amp;quot;mar&amp;quot;)&lt;br /&gt;
$ parallel echo &#039;{}&#039; ::: &amp;quot;${myArray[@]}&amp;quot;&lt;br /&gt;
jan&lt;br /&gt;
feb&lt;br /&gt;
mar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supply different arguments for each job with an `--arg-file`.&lt;br /&gt;
 $ printf &amp;quot;foo\tbee\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ printf &amp;quot;bar\tboo\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ printf &amp;quot;baz\ttax\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ parallel --col-sep &#039;\t&#039; --arg-file args.txt echo &#039;{2}&#039; &#039;{1}&#039;;&lt;br /&gt;
 bee foo&lt;br /&gt;
 boo bar&lt;br /&gt;
 tax baz&lt;br /&gt;
&lt;br /&gt;
Avoid OOM by suspending jobs on low memory via &amp;lt;code&amp;gt;--memsuspend 512M&amp;lt;/code&amp;gt; (e.g. 512 [[mebibytes]]), which suspends job if less than &amp;lt;code&amp;gt;2 * 512 = 1024&amp;lt;/code&amp;gt; mebibytes memory free. If only one job remains, it will not suspend.&lt;br /&gt;
 $ seq 1 10 | parallel --memsuspend 512M echo &#039;{}&#039;;&lt;br /&gt;
&lt;br /&gt;
=== paste ===&lt;br /&gt;
List contents of three files as columns.&lt;br /&gt;
 $ printf &amp;quot;foo\nbar\nbaz\n&amp;quot; &amp;gt; 1.txt&lt;br /&gt;
 $ printf &amp;quot;bee\nboo\ntax\n&amp;quot; &amp;gt; 2.txt&lt;br /&gt;
 $ paste 1.txt 2.txt&lt;br /&gt;
 foo	bee&lt;br /&gt;
 bar	boo&lt;br /&gt;
 baz	tax&lt;br /&gt;
&lt;br /&gt;
Split lines of a single file into columns&lt;br /&gt;
 $ seq 1 13 | paste - - -  # three columns&lt;br /&gt;
 1	2	3&lt;br /&gt;
 4	5	6&lt;br /&gt;
 7	8	9&lt;br /&gt;
 10	11	12&lt;br /&gt;
 13&lt;br /&gt;
&lt;br /&gt;
=== pipx ===&lt;br /&gt;
[[pipx]] is a tool that automates the creation of [[virtual environment]]s when installing command-line [[python]] packages via [[pip]].&lt;br /&gt;
&lt;br /&gt;
Install [[pipx]].&lt;br /&gt;
 $ sudo apt install pipx&lt;br /&gt;
 $ pipx ensurepath   # make sure PATH environment variable contains pipx directories&lt;br /&gt;
&lt;br /&gt;
Install [[OpenAI]] [[Whisper (speech recognition system)|Whisper]]&lt;br /&gt;
 $ sudo apt install ffmpeg   # get ffmpeg dependency&lt;br /&gt;
 $ pipx install openai-whisper&lt;br /&gt;
&lt;br /&gt;
Upgrade OpenAI Whisper&lt;br /&gt;
 $ pipx upgrade openai-whisper  # as opposed to &#039;pip install -U openai-whisper&#039;&lt;br /&gt;
&lt;br /&gt;
=== play ([[sox]]) ===&lt;br /&gt;
Play an audio file from the [[sox]] package. (limited to formats such as MP3, WAV, AIFF, OGG)&lt;br /&gt;
 $ play ~/Music/song.wav&lt;br /&gt;
&lt;br /&gt;
Play an audio file via [[cron]]. To do so, insert the following lines into a [[bash]] script run by [[cron]] (assuming [[Debian]] system)&amp;lt;ref name=&amp;quot;askubuntu_20180610_cron-chime&amp;quot;&amp;gt;[[WinEunuuchs2Unix]].  ([[2018-06-10]]).  “[https://askubuntu.com/a/1045344 Help using crontab to play a sound]”.  [[askubuntu.com]].  Accessed [[2025-10-11]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
(&lt;br /&gt;
  export XDG_RUNTIME_DIR=/run/user/$(id -u);&lt;br /&gt;
  play --vol 0.2 $HOME/Music/chime.wav;&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[ps]] ===&lt;br /&gt;
Show process PIDs and full commands.&lt;br /&gt;
 $ ps -eo pid,args&lt;br /&gt;
&lt;br /&gt;
=== [[pdftk]] ===&lt;br /&gt;
Install{{bkc|[[2025-01-26]]: As of [[2025]], &amp;lt;code&amp;gt;$ sudo apt install pdftk&amp;lt;/code&amp;gt; no longer works, likely due to licensing issues with [[PDF Labs]] ([https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ web]) }}&amp;lt;ref name=&amp;quot;gitlab_2023_pdftk-java&amp;quot;&amp;gt;[[Marc Vinyals]].  ([[2023]]).  “[https://gitlab.com/pdftk-java/pdftk pdftk-java]”.  &#039;&#039;[[gitlab.com]]&#039;&#039;.  Accessed [[2025-01-26]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo apt install pdftk-java &lt;br /&gt;
&lt;br /&gt;
Combine PDFs&lt;br /&gt;
 $ pdftk doc1.pdf doc2.pdf doc3.pdf cat output output.pdf&lt;br /&gt;
&lt;br /&gt;
Extract page range from a PDF. (e.g. extract first 13 pages)&lt;br /&gt;
 $ pdftk input.pdf cat 1-13 output output.pdf&lt;br /&gt;
&lt;br /&gt;
=== [[pdftotext]] ===&lt;br /&gt;
Install.&lt;br /&gt;
 $ sudo apt install poppler-utils&lt;br /&gt;
&lt;br /&gt;
Convert PDF to text. (Note: If text is [[Raster graphics|rasterized]], use [[#tesseract|tesseract]] instead). &lt;br /&gt;
 $ pdftotext output.pdf output.txt&lt;br /&gt;
&lt;br /&gt;
=== [[pgrep]] ===&lt;br /&gt;
Exit early if a specific process (e.g. &amp;lt;code&amp;gt;yt-dlp&amp;lt;/code&amp;gt;) is already running.&lt;br /&gt;
  $ if pgrep &amp;quot;yt-dlp&amp;quot; 1&amp;gt;/dev/random 2&amp;gt;&amp;amp;1; then exit 1; fi;&lt;br /&gt;
&lt;br /&gt;
=== printf ===&lt;br /&gt;
==== GNU Coreutils ====&lt;br /&gt;
Print a &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; character.&amp;lt;ref name=&amp;quot;so_20130221_printf-exclam&amp;quot;&amp;gt;[https://stackoverflow.com/users/465183/gilles-qu%c3%a9not Giles Quénot].  ([[2013-02-21]]).  “[https://stackoverflow.com/a/15011849 How to printf an exclamation mark in bash?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2026-01-15]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ printf &amp;quot;\041\n&amp;quot;&lt;br /&gt;
 !&lt;br /&gt;
&lt;br /&gt;
Round a float to nearest integer&amp;lt;ref&amp;gt;{{bk}}: [[2023-09-09]]: Tested with GNU Coreutils 8.32&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;;&lt;br /&gt;
  14&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  14.29&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.1f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  14.3&lt;br /&gt;
  $ myVar=&amp;quot;-14.28571&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  -14.29&lt;br /&gt;
  $ myVar=&amp;quot;28.57142&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  28.57&lt;br /&gt;
  $ myVar=&amp;quot;28.57142&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
: Note, GNU Coreutils printf uses “[[Rounding|round to even]]” (i.e. “Bankerʼs rounding”) for cases when 5 must be rounded.&amp;lt;ref name=&amp;quot;se_20151101_printfrounding&amp;quot;&amp;gt;user79742.  ([[2015-11-01]]).  “[https://unix.stackexchange.com/a/240113 Weird float rounding behavior with printf]”.  &#039;&#039;[[unix.stackexchange.com]]&#039;&#039;.  Accessed [[2023-10-04]].  [https://web.archive.org/web/20231004195404/https://unix.stackexchange.com/questions/240112/weird-float-rounding-behavior-with-printf/240113#240113 Archived] from the original on [[2023-10-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ myVar=&amp;quot;5.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  6&lt;br /&gt;
  $ myVar=&amp;quot;6.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot; &lt;br /&gt;
  6&lt;br /&gt;
  $ myVar=&amp;quot;7.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  8&lt;br /&gt;
  $ myVar=&amp;quot;8.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot; &lt;br /&gt;
  8&lt;br /&gt;
&lt;br /&gt;
Print integer with leading zeroes. (see [https://stackoverflow.com/a/18460742/10850071 ref])&lt;br /&gt;
&lt;br /&gt;
 $ n=7; printf &amp;quot;%05d\n&amp;quot; &amp;quot;$n&amp;quot;;&lt;br /&gt;
 00007&lt;br /&gt;
&lt;br /&gt;
Print a bash array (see [https://stackoverflow.com/a/15692004/10850071 ref])&lt;br /&gt;
&lt;br /&gt;
 $ declare -a my_array; my_array+=(&amp;quot;jan&amp;quot;); my_array+=(&amp;quot;feb&amp;quot;);&lt;br /&gt;
 $ printf &#039;%s\n&#039; &amp;quot;${my_array[@]}&amp;quot;;&lt;br /&gt;
 jan&lt;br /&gt;
 feb&lt;br /&gt;
&lt;br /&gt;
Print a progress bar&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 total_iterations=100&lt;br /&gt;
 current_iteration=0&lt;br /&gt;
 &lt;br /&gt;
 while [ $current_iteration -lt $total_iterations ]; do&lt;br /&gt;
     # Your actual loop content goes here&lt;br /&gt;
     sleep 0.1 # This is just an example, replace with your actual task&lt;br /&gt;
 &lt;br /&gt;
     # Calculate progress percentage&lt;br /&gt;
     progress_percentage=$(( 100 * current_iteration / total_iterations ))&lt;br /&gt;
 &lt;br /&gt;
     # Print progress percentage without causing scrolling&lt;br /&gt;
     printf &amp;quot;\rProgress: %3d%%&amp;quot; $progress_percentage&lt;br /&gt;
 &lt;br /&gt;
     # Increment the iteration counter&lt;br /&gt;
     current_iteration=$(( current_iteration + 1 ))&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Print a newline character to move to the next line after the loop is done&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
Convert hexadecimal into decimal&lt;br /&gt;
 $ printf &amp;quot;%u\n&amp;quot; &amp;quot;0xFFFF&amp;quot;&lt;br /&gt;
 65535&lt;br /&gt;
&lt;br /&gt;
==== C stdio.h ====&lt;br /&gt;
Print an int as a hexadecimal&lt;br /&gt;
&lt;br /&gt;
 int a=17; printf(&amp;quot;%x\n&amp;quot;,a);&lt;br /&gt;
&lt;br /&gt;
Print an int as a binary (&amp;lt;code&amp;gt;glibc &amp;gt;2.35&amp;lt;/code&amp;gt;, check via &amp;lt;code&amp;gt;$ ldd --version&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 int main()&lt;br /&gt;
   int a=1023; printf(&amp;quot;%b\n&amp;quot;,a); return 0;&lt;br /&gt;
&lt;br /&gt;
: When compiled with &amp;lt;code&amp;gt;gcc-12&amp;lt;/code&amp;gt; (previous versions throw errors) and glibc &amp;gt;2.35, this prints:&lt;br /&gt;
&lt;br /&gt;
 1111111111&lt;br /&gt;
&lt;br /&gt;
=== [[readlink]] ===&lt;br /&gt;
Print canonical path of a file, resolving any symlinks. (Note: Specific to [[Debian]]/[[Ubuntu]]-like systems. For [[macOS]], see &amp;lt;code&amp;gt;[[realpath]]&amp;lt;/code&amp;gt; or [[homebrew]]ʼs &amp;lt;code&amp;gt;[[grealpath]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ readlink -f some_file&lt;br /&gt;
&lt;br /&gt;
=== [[reset]] ===&lt;br /&gt;
Reset terminal state.&lt;br /&gt;
 $ reset&lt;br /&gt;
&lt;br /&gt;
=== [[rev]] ===&lt;br /&gt;
Get a counted list of unique file extensions in the current working directory.&lt;br /&gt;
&lt;br /&gt;
 $ find . -mindepth 1 -maxdepth 1 -type f | rev | cut -d&#039;.&#039; -f1 | rev | sort | uniq -c | sort -hk1;&lt;br /&gt;
&lt;br /&gt;
: An explanation:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ find . -mindepth 1 -maxdepth 1 -type f | \  # Get a list of files in current working directory.&lt;br /&gt;
  rev | \              # Reverse order of characters within each line.&lt;br /&gt;
  cut -d&#039;.&#039; -f1 | \    # Cut all characters except for those before the final `.` in the path.&lt;br /&gt;
  rev | \              # Restore order of characters within each line.&lt;br /&gt;
  sort | \             # Sort for uniq.&lt;br /&gt;
  uniq -c | \          # List and count unique lines.&lt;br /&gt;
  sort -hk1;           # Sort by line counts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[rm]] ===&lt;br /&gt;
Delete a file named &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ rm file.txt&lt;br /&gt;
&lt;br /&gt;
Delete a directory named &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt; as well as all of its contents.&lt;br /&gt;
 $ rm -r some_dir&lt;br /&gt;
&lt;br /&gt;
=== [[rmdir]] ===&lt;br /&gt;
Delete an empty directory.&lt;br /&gt;
 $ rmdir some_dir&lt;br /&gt;
&lt;br /&gt;
=== [[rsync]] ===&lt;br /&gt;
Note: These commands assume use of &#039;&#039;rsync&#039;&#039; version &amp;lt;code&amp;gt;3.2.7 protocol version 31&amp;lt;/code&amp;gt;, which is available on [[Debian]] version &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|rsync}}&lt;br /&gt;
&lt;br /&gt;
Exclude all dotfiles or dotdirectories at any directory level.&lt;br /&gt;
 $ echo &amp;quot;.*/**&amp;quot; &amp;gt;&amp;gt; exclude.txt&lt;br /&gt;
 $ rsync -avu --exclude-from=exclude.txt somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
&lt;br /&gt;
Copy all files contained within a directory named &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; located within &amp;lt;code&amp;gt;somepath&amp;lt;/code&amp;gt; into a directory named &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; within &amp;lt;code&amp;gt;anotherpath&amp;lt;/code&amp;gt;, preserving file attributes (e.g. user:group, read/write/execute permissions), and overwriting existing files within &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; if they differ in modification date and/or size from those of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;. The forward slashes after &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; are significant; omitting them may cause the creation of a new directory layer instead of synchronizing the file trees of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
&lt;br /&gt;
Make the contents of &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; exactly match that of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;, overwriting and deleting files as required in &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; via the &amp;lt;code&amp;gt;--delete-before&amp;lt;/code&amp;gt; command, performing all deletions before file copying begins. This is useful for updating a backup of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; at &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --delete-before somepath/SOURCE/ anotherpath/somedir/DEST/&lt;br /&gt;
&lt;br /&gt;
Copy files from a local &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; in a remote user&#039;s home directory (e.g. &amp;lt;code&amp;gt;/home/username/DEST/&amp;lt;/code&amp;gt;) via the [[ssh]] command.&lt;br /&gt;
 $ rsync -avu -e &#039;ssh&#039; somepath/SOURCE/ username@hostname:DEST/&lt;br /&gt;
&lt;br /&gt;
Copy files only files containing &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt; in their filenames from a &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;. This preserves the directory tree of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
:: Exclude &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt;files larger than 100 000 000 bytes.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; --max-size=100MB --remove-source-files somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
: Move (i.e. extract) only the files containing &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt; in their file names, deleting them from &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; if successfully copied to &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; --remove-source-files somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
Recreate full path at destination.&amp;lt;ref name=&amp;quot;askubuntu_20141121_rsync-preserve-dirtree&amp;quot;&amp;gt;[https://askubuntu.com/users/193328/jan jan].  ([[2014-11-21]]).  “[https://askubuntu.com/a/552122 Preserve directory tree while copying with rsync]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2024-04-01]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ rsync -avu -R somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
 $ ls anotherpath/DEST/somepath/SOURCE/&lt;br /&gt;
&lt;br /&gt;
=== [[sed]] ===&lt;br /&gt;
[https://www.gnu.org/software/sed/manual/sed.html GNU sed manual].&lt;br /&gt;
&lt;br /&gt;
Replace first instance of a string.&lt;br /&gt;
 $ echo &amp;quot;foo foo&amp;quot; | sed &#039;s/oo/ee/&#039;&lt;br /&gt;
 fee foo&lt;br /&gt;
&lt;br /&gt;
Replace all instances of a string.&lt;br /&gt;
 $ echo &amp;quot;foo foo&amp;quot; | sed &#039;s/oo/ee/g&#039;&lt;br /&gt;
 fee fee&lt;br /&gt;
&lt;br /&gt;
Replace all instances of a string in a file (CAUTION: modifies the file):&lt;br /&gt;
 $ printf &amp;quot;foo\n&amp;quot; &amp;amp;gt; bar.txt&lt;br /&gt;
 $ cat bar.txt&lt;br /&gt;
 foo&lt;br /&gt;
 $ sed -i &#039;s/oo/ee/g&#039; bar.txt&lt;br /&gt;
 $ cat bar.txt&lt;br /&gt;
 fee&lt;br /&gt;
&lt;br /&gt;
Append something to the start of each line ([https://unix.stackexchange.com/a/443150 ref]):&lt;br /&gt;
 $ printf &amp;quot;bar\nbaz\n&amp;quot; | sed &#039;s/^/foo/&#039;&lt;br /&gt;
 foobar&lt;br /&gt;
 foobaz&lt;br /&gt;
 $ printf &amp;quot;bar\nbaz\n&amp;quot; | sed &#039;s~^~foo~&#039;   # use ~ instead of / as regex delimiter&lt;br /&gt;
 foobar&lt;br /&gt;
 foobaz&lt;br /&gt;
&lt;br /&gt;
Delete blank lines. (see [https://unix.stackexchange.com/a/76066/411854 ref])&lt;br /&gt;
 $ printf &amp;quot;foo\n\nbar\n&amp;quot;&lt;br /&gt;
 foo&lt;br /&gt;
 &lt;br /&gt;
 bar&lt;br /&gt;
 $ printf &amp;quot;foo\n\nbar\n&amp;quot; | sed &#039;/^$/d&#039;&lt;br /&gt;
 foo&lt;br /&gt;
 bar&lt;br /&gt;
&lt;br /&gt;
Remove an initial `./` from the start of file lists produced by `find` whether newlines or NULL chars are used as list delimiters. Example: [[sumdir]] v0.1.2&lt;br /&gt;
 $ sed -E &#039;s/(^|\x00)\.\//\1/g&#039;&lt;br /&gt;
&lt;br /&gt;
Print specific lines of a file. (i.e. get a specific line from a file)&lt;br /&gt;
 $ some_command | sed -n &#039;2p&#039;  # prints line 2 of standard input&lt;br /&gt;
 $ sed -n &#039;2p&#039; file.txt        # prints line 2&amp;lt;ref&amp;gt;{{bk}}; [[2024-01-29]]: See https://stackoverflow.com/a/74076669&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sed &#039;2q;d&#039; big_file.txt     # prints line of a very large file.&amp;lt;ref&amp;gt;{{bk}}; [[2024-01-29]]: See https://stackoverflow.com/a/30657175 &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sed -n &#039;2p&#039;&lt;br /&gt;
 $ sed -n &#039;2,5p&#039; file.txt      # prints lines 2 through 5 inclusive.{{bkc|[[2025-04-04]]: Consider using [[#tail]] and [[#head]] &amp;lt;code&amp;gt;$ seq 1 100 &amp;amp;#124; tail -n+50 &amp;amp;#124; head -n4&amp;lt;/code&amp;gt; (get values 50 to 53).}}&lt;br /&gt;
 $ sed -n &#039;2p;5p;&#039; file.txt    # prints only lines 2 and 5.&lt;br /&gt;
&lt;br /&gt;
Substitute special characters&lt;br /&gt;
 $ echo &amp;quot;2 * 5 = 8&amp;quot; | sed -E -e &#039;s/*/x/&#039;    # doesn&#039;t work because asterisk is special regex&lt;br /&gt;
 sed: -e expression #1, char 6: Invalid preceding regular expression&lt;br /&gt;
 $ echo &amp;quot;2 * 5 = 10&amp;quot; | sed -E -e &#039;s/\*/x/&#039;  # works&lt;br /&gt;
&lt;br /&gt;
=== seq ===&lt;br /&gt;
Generate a sequence of integers, newline-delimited.&lt;br /&gt;
 $ seq 1 3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
&lt;br /&gt;
=== sfill ===&lt;br /&gt;
&#039;&#039;Installable via &amp;lt;code&amp;gt;apt install secure-delete&amp;lt;/code&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill all available freespace by writing random noise to a file in directory &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ sfill -ll ./dir/&lt;br /&gt;
&lt;br /&gt;
=== [[shellcheck]] ===&lt;br /&gt;
Delint a shell script.&lt;br /&gt;
 $ shellcheck my_script.sh&lt;br /&gt;
&lt;br /&gt;
=== [[shuf]] ===&lt;br /&gt;
Produce random integers from &amp;lt;code&amp;gt;/dev/random&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Print the numbers 1 through 4 in random order.&lt;br /&gt;
 $ shuf -i1-4&lt;br /&gt;
 4&lt;br /&gt;
 3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
&lt;br /&gt;
Print a random number between 1 and 100.&lt;br /&gt;
 $ shuf -n1 -i1-100&lt;br /&gt;
 40&lt;br /&gt;
&lt;br /&gt;
=== [[ssh]] ===&lt;br /&gt;
Connect to a local machine&#039;s [[Syncthing]] instance via [[firefox]].&lt;br /&gt;
 $ firefox 127.0.0.1:8384&lt;br /&gt;
&lt;br /&gt;
Connect to a remote server&#039;s [[Syncthing]] instance via [[ssh]] port forwarding and [[firefox]].&lt;br /&gt;
 $ ssh -L 127.0.0.1:8388:127.0.0.1:8384 user@hostname&lt;br /&gt;
 $ firefox 127.0.0.1:8388&lt;br /&gt;
&lt;br /&gt;
Get a host&#039;s SSH fingerprint&amp;lt;ref name=&amp;quot;se_20160509_sshkeyscan&amp;quot;&amp;gt;[[Anthony Geoghegan]]. ([[2016-05-09]]). “[https://unix.stackexchange.com/a/268692/411854 Get SSH server key fingerprint]”. Accessed [[2023-06-25]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub&lt;br /&gt;
&lt;br /&gt;
: Get all hostsʼ SSH fingerprints.&lt;br /&gt;
 $ ssh-keygen -lf &amp;lt;(ssh-keyscan localhost 2&amp;gt;/dev/random; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configure [[gnupg]], [[ssh]], and smartcard on [[macOS]]====&lt;br /&gt;
Install necessary [[homebrew]] packages&lt;br /&gt;
 % [[#brew|brew]] update &amp;amp;&amp;amp; brew upgrade;&lt;br /&gt;
 % brew install gnupg pinentry-mac&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ gpg -K&amp;lt;/code&amp;gt; should have a line like this with &amp;lt;code&amp;gt;&amp;amp;#91;A&amp;amp;#93;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ssb&amp;gt;  rsa4096/0x5F9D26B9A598A2D3 2018-05-16 [A] [expires: 2026-07-07]&lt;br /&gt;
&lt;br /&gt;
Configure [[GnuPG]] to use &amp;lt;code&amp;gt;pinentry-mac&amp;lt;/code&amp;gt;&lt;br /&gt;
 % which pinentry;&lt;br /&gt;
 /opt/homebrew/bin/pinentry-mac;&lt;br /&gt;
 % which pinentry-mac &amp;gt;&amp;gt; ~/.gnupg/gpg-agent.conf;&lt;br /&gt;
&lt;br /&gt;
Configure [[GnuPG]] to be able to talk to [[ssh]] by:&lt;br /&gt;
: Adding these lines to &amp;lt;code&amp;gt;~/.gnupg/gpg-agent.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-cache-ttl 300&lt;br /&gt;
max-cache-ttl 999999&lt;br /&gt;
enable-ssh-support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: and exporting these environment variables to your shell (probably &amp;lt;code&amp;gt;~/.[[zsh]]rc&amp;lt;/code&amp;gt; as of [[2024]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export GPG_TTY=&amp;quot;$(tty)&amp;quot;;&lt;br /&gt;
export SSH_AUTH_SOCK=&amp;quot;$(gpgconf --list-dirs agent-ssh-socket)&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Export the [[ssh]] public key from your [[OpenPGP]] key via [[GnuPG]]:&lt;br /&gt;
: Get public key line to add to remote machine&lt;br /&gt;
 $ gpg --export-ssh-key YOUR_KEY_ID &amp;gt; my_gpg_ssh_pubkey.txt&lt;br /&gt;
&lt;br /&gt;
: This should look like:&lt;br /&gt;
 $ cat my_gpg_ssh_pubkey.txt &lt;br /&gt;
 $ ssh-rsa AAAAB3NzaC1yc2EAAAA… user@host&lt;br /&gt;
&lt;br /&gt;
: Add ssh pubkey to remote machine by&lt;br /&gt;
:: running this command remotely (via a preëxisting [[ssh]] session or by visiting the remote machine physically)&lt;br /&gt;
 remote$ echo &amp;quot;ssh-rsa AAAAB3NzaC1yc2EAAAA… user@host&amp;quot; &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
:: or by running this comand locally:&lt;br /&gt;
 $ gpg --export-ssh-key YOUR_KEY_ID | ssh user@remote &#039;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&#039;&lt;br /&gt;
&lt;br /&gt;
Restart [[gnupg]] to apply configuration changes:&lt;br /&gt;
 $ gpgconf --kill gpg-agent;&lt;br /&gt;
 $ gpgconf --launch gpg-agent;&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
 $ ssh user@remote&lt;br /&gt;
&lt;br /&gt;
: If you never have to use the server&#039;s password for the &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; user, then you succeeded.&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|ssh}}&lt;br /&gt;
&lt;br /&gt;
=== [[sort]] ===&lt;br /&gt;
Sort &amp;lt;code&amp;gt;[[du]]&amp;lt;/code&amp;gt; results on human-readable file size of current working directory (non-recursively).&lt;br /&gt;
 $ du -hd1 ./ | sort -hk1&lt;br /&gt;
&lt;br /&gt;
Sort part of a checksum file while ignoring some initial lines (e.g. a checksum file generated by &amp;lt;code&amp;gt;sumdir&amp;lt;/code&amp;gt;). Sorts every line except for the first three lines which it leaves at the top; the output is written to &amp;lt;code&amp;gt;/tmp/0.txt&amp;lt;/code&amp;gt;. Uses the &amp;lt;code&amp;gt;-k2&amp;lt;/code&amp;gt; (i.e. &amp;quot;key 2&amp;quot;) option of &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt; which says to sort by the file name, not the hash (hash is first whitespace-separated entry, file name is the second).&lt;br /&gt;
&lt;br /&gt;
 file=.SUMSHA256--20230126T050458+0000; ( cat &amp;quot;$file&amp;quot; | head -n3; cat &amp;quot;$file&amp;quot; | tail -n+4 | sort -k2; ) &amp;gt; /tmp/0.txt&lt;br /&gt;
&lt;br /&gt;
Sort on the third field of comma-delimited lines&lt;br /&gt;
 $ printf &amp;quot;1,foo,kobo\n2,bar,kaela\n3,baz,zeta\n&amp;quot; | sort -t&#039;,&#039; -k3&lt;br /&gt;
 2,bar,kaela&lt;br /&gt;
 1,foo,kobo&lt;br /&gt;
 3,baz,zeta&lt;br /&gt;
&lt;br /&gt;
Remove duplicate lines without sorted result (preserving first copied unique line). (see [https://stackoverflow.com/a/20639730/10850071 ref])&lt;br /&gt;
 $ myVar=&amp;quot;$( printf &amp;quot;gundam\ninuyasha\ngundam\nbleach\ngundam\nnaruto\ngundam\n&amp;quot; )&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot; | cat -n | sort -uk2 | sort -n | cut -f2-&lt;br /&gt;
 gundam&lt;br /&gt;
 inuyasha&lt;br /&gt;
 bleach&lt;br /&gt;
 naruto&lt;br /&gt;
&lt;br /&gt;
: Preserving last unique copied line.&lt;br /&gt;
 echo &amp;quot;$myVar&amp;quot; | tac | cat -n | sort -uk2 | sort -n | cut -f2- | tac&lt;br /&gt;
 inuyasha&lt;br /&gt;
 bleach&lt;br /&gt;
 naruto&lt;br /&gt;
 gundam&lt;br /&gt;
&lt;br /&gt;
=== [[stdbuf]] ===&lt;br /&gt;
A [[GNU Coreutils]] program that controls how stdin, stdout, and error data is passed in and out of a program.&lt;br /&gt;
&lt;br /&gt;
Read input from &#039;&#039;stdin&#039;&#039; and pass through output to &#039;&#039;stdout&#039;&#039; without any buffering.&amp;lt;ref name=&amp;quot;se_20110619_stdbuf&amp;quot;&amp;gt;[[a3nm]]. ([[2011-06-19]]). “[https://unix.stackexchange.com/a/25378 Turn off buffering in pipe]”. &#039;&#039;Stack Exchange&#039;&#039;. Accessed [[2023-06-06]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ stdbuf -i0 -o0 -e0 command&lt;br /&gt;
&lt;br /&gt;
: Example: Continuously filtering [[journalctl]] output to capture &amp;lt;code&amp;gt;apache-access&amp;lt;/code&amp;gt; lines while discarding the first 7 space-delimited fields of each line. If &#039;&#039;stdbuf&#039;&#039; is not used in this type of scenario, [[tr]] and [[cut]] may fail to immediately display important lines as they arrive from &#039;&#039;journalctl&#039;&#039;, choosing to wait until a buffer is filled before displaying them (defeating the purpose of the &amp;lt;code&amp;gt;--follow&amp;lt;/code&amp;gt; option of &#039;&#039;journalctl&#039;&#039;).&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
journalctl --all --output=short-iso --since=-7d --follow |\&lt;br /&gt;
  grep --line-buffered -Eiv &amp;quot; 404 &amp;quot; |\&lt;br /&gt;
  grep --line-buffered &amp;quot;apache-access&amp;quot; |\&lt;br /&gt;
  stdbuf -i0 -o0 -e0 tr -s &#039; &#039; |\&lt;br /&gt;
  stdbuf -i0 -o0 -e0 cut -d&#039; &#039; -f8- -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[strace]] ===&lt;br /&gt;
Read stderr of a backgrounded and disowned process with process ID &amp;lt;code&amp;gt;pid&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ strace -p &amp;quot;$pid&amp;quot; -e trace=write&lt;br /&gt;
&lt;br /&gt;
=== su ===&lt;br /&gt;
Open shell as another user (if already root) with Bash shell&lt;br /&gt;
 # whoami&lt;br /&gt;
 root&lt;br /&gt;
 # su - www-data -s /bin/bash&lt;br /&gt;
&lt;br /&gt;
=== sudo ===&lt;br /&gt;
Open a shell as root.&lt;br /&gt;
 alice@host: sudo su -&lt;br /&gt;
 root@host: whoami&lt;br /&gt;
 root&lt;br /&gt;
&lt;br /&gt;
Open a &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; shell as another user, e.g. &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;.&lt;br /&gt;
 alice@host: whoami&lt;br /&gt;
 alice&lt;br /&gt;
 alice@host: sudo su - www-data -s /bin/bash&lt;br /&gt;
 [sudo] password for alice:&lt;br /&gt;
 www-data@host: whoami&lt;br /&gt;
 www-data&lt;br /&gt;
&lt;br /&gt;
=== sumdir ===&lt;br /&gt;
A script by [[Christopher Lovejoy]] (used with &amp;lt;code&amp;gt;checkdir&amp;lt;/code&amp;gt;). [https://github.com/monking/shell-utilities/blob/main/sumdir Source at GitHub].&lt;br /&gt;
&lt;br /&gt;
Create checksum of files in working directory recursively, excluding files with names: ending in &amp;lt;code&amp;gt;.asc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ots&amp;lt;/code&amp;gt; and files starting with &amp;lt;code&amp;gt;.SUM&amp;lt;/code&amp;gt;. Resulting file has pattern: &amp;lt;code&amp;gt;.SUM${digest_name}&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;.SUMB2--20230128T013153+0000&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ sumdir -a sha256 -r -x &amp;quot;*.asc&amp;quot; -x &amp;quot;*.ots&amp;quot; -x &amp;quot;.SUM*&amp;quot;&lt;br /&gt;
 $ sumdir -a b2 -r -x &amp;quot;*.asc&amp;quot; -x &amp;quot;*.ots&amp;quot; -x &amp;quot;.SUM*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== swapoff ===&lt;br /&gt;
&#039;&#039;Possibly [[Ubuntu]]-specific&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Temporarily all swap file entries in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.{{bkc|[[2025-01-21]]: Generally, to permanently disable swap, comment out the relevant swap lines in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
 $ sudo swapoff -a&lt;br /&gt;
&lt;br /&gt;
=== [[tail]] ===&lt;br /&gt;
Get last 4 lines of a stdin steam.&lt;br /&gt;
 $ seq 1 10 | tail -n4&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
Get all lines, but start on line 4.&lt;br /&gt;
 $ seq 1 10 | tail -n+4&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
{{Anchor|tail-slice}}{{Anchor|tail-slice-lines}}Get lines 4 through 6.&amp;lt;ref name=&amp;quot;se_20131009_print-lines-tail-head&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/22222/terdon terdon].  ([[2013-10-09]]).  “[https://unix.stackexchange.com/a/94320 Efficient way to print lines from a massive file using awk, sed, or something else?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2025-04-04]].  &amp;lt;/ref&amp;gt; Note: is more efficient than [[#sed|sed]] or [[#awk|awk]] when processing large files.&lt;br /&gt;
 $ seq 1 10 | tail -n+4 | head -n3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
: Get lines 4 through 6 via variables and Bash arithmetic.&lt;br /&gt;
 $ start=4; end=6; seq 1 10 | tail -n+${start} | head -n$((end - start + 1))&lt;br /&gt;
&lt;br /&gt;
{{Anchor|tail-slice-bytes}}Print 4th to 7th bytes of a seekable file. (see [[#head-slice-bytes|#head]] for non-seekable case)&lt;br /&gt;
 $ selStart=$((4-1)); selEnd=$((7-1)); selCount=$((selEnd-selStart+1));&lt;br /&gt;
 $ tail --bytes=+$((selStart+1)) -- foo.txt | head --bytes=$((selCount));  # GNU Coreutils 8.32&lt;br /&gt;
 $ tail -c +$((selStart+1)) -- foo.txt | head -c $((selCount));  # BSD/macOS&lt;br /&gt;
&lt;br /&gt;
=== [[tar]] ===&lt;br /&gt;
&#039;&#039;See [[File compression notes]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;some_dir.rar&amp;lt;/code&amp;gt; out of the contents of the directory &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ tar -cf some_dir.rar some_dir&lt;br /&gt;
&lt;br /&gt;
Extract a compressed archive (e.g. &amp;lt;code&amp;gt;.tar.xz&amp;lt;/code&amp;gt;) in the current working directory.&lt;br /&gt;
 $ tar -xf archive.tar.xz&lt;br /&gt;
&lt;br /&gt;
: Extract to a different directory &amp;lt;code&amp;gt;some/path/&amp;lt;/code&amp;gt;. (The positioning of &amp;lt;code&amp;gt;-C&amp;lt;/code&amp;gt; is important.)&lt;br /&gt;
 $ tar -xf archive.tar.xz -C some/path/&lt;br /&gt;
&lt;br /&gt;
=== tee ===&lt;br /&gt;
Echo stdout to stderr ([https://stackoverflow.com/a/3142166/10850071 ref]):&lt;br /&gt;
 $ echo &amp;quot;This is standard error&amp;quot; | tee /dev/stderr | sed &#039;s/error/out/g&#039;&lt;br /&gt;
 This is standard error&lt;br /&gt;
 This is standard out&lt;br /&gt;
&lt;br /&gt;
=== [[Tesseract (software)|tesseract]] ===&lt;br /&gt;
Install.&lt;br /&gt;
 $ sudo apt install tesseract-ocr&lt;br /&gt;
 $ sudo apt install tesseract-ocr-eng  # english&lt;br /&gt;
 $ sudo apt install tesseract-ocr-osd  # orientation and script detection&lt;br /&gt;
&lt;br /&gt;
Perform English OCR on &amp;lt;code&amp;gt;input.jpg&amp;lt;/code&amp;gt; to create &amp;lt;code&amp;gt;output.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ tesseract input.jpg output -l eng&lt;br /&gt;
&lt;br /&gt;
Perform English OCR but with an image orientation check before.&lt;br /&gt;
 $ tesseract input.jpg output -l osd+eng&lt;br /&gt;
&lt;br /&gt;
Perform English OCR on all &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt; files in the working with 8 CPU cores using [[GNU Parallel]].&lt;br /&gt;
 $ find . -maxdepth 1 -type f -name &amp;quot;*.jpg&amp;quot; | parallel tesseract -j8 &#039;{}&#039; &#039;{.}&#039; -l eng&lt;br /&gt;
: &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to start its search in the working directory&lt;br /&gt;
: &amp;lt;code&amp;gt;-maxdepth 1&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to only search the immediate working directory and not to recursively traverse subdirectories.&lt;br /&gt;
: &amp;lt;code&amp;gt;-type f&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to search for files&lt;br /&gt;
: &amp;lt;code&amp;gt;-name &amp;quot;*.jpg&amp;quot;&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to case-sensitive pattern-match files ending in &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;-j8&amp;lt;/code&amp;gt; specifies 8 CPU threads to be used. Omitting this option causes all available CPU cores to be used.&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{}&#039;&amp;lt;/code&amp;gt; represents a single line received from &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{.}&#039;&amp;lt;/code&amp;gt; represents the same line but with the extension (i.e. &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;) removed.&lt;br /&gt;
&lt;br /&gt;
=== [[top (software)|top]] ===&lt;br /&gt;
View process, sorted by CPU usage&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
Shortcuts&amp;lt;ref name=&amp;quot;transip_2024_linux-top-shortcuts&amp;quot;&amp;gt;“[https://www.transip.eu/knowledgebase/entry/1979-using-the-top-command-linux/ Using the top command in Linux]”.  (n.d.).  &#039;&#039;[[transip.eu]]&#039;&#039;.  Accessed [[2024-01-06]].  [https://web.archive.org/web/20231127225012/https://www.transip.eu/knowledgebase/entry/1979-using-the-top-command-linux/ Archived] from the original on [[2023-11-27]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
* Arrow keys &amp;amp; page up/down: Navigate through the displayed list in the Task area.&lt;br /&gt;
* &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;: Finish the top with the &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;-key.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-p&amp;lt;/code&amp;gt;: Sort the processes by CPU usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-m&amp;lt;/code&amp;gt;: Sort the processes by memory (%MEM) usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-t&amp;lt;/code&amp;gt;: Sort the processes by running-time.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-n&amp;gt;&amp;lt;/code&amp;gt;: Sort the processes by process ID.&lt;br /&gt;
* &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;: Changes the display of the CPU usage in the summary section.&lt;br /&gt;
* &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;: Changes the display of memory usage in the summary section.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-r&amp;lt;/code&amp;gt;: Sort the processes in ascending order instead of descending (default).&lt;br /&gt;
* &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;: By pressing &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;, the &#039;Command&#039; column shows the entire path from which the processes were started.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-v&amp;lt;/code&amp;gt;: Shows the parent / child process hierarchy.&lt;br /&gt;
* &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;: Prompts for a process ID and closes the specified process. By default, SIGTERM is used for a graceful shutdown of the process. For a forced shutdown, you use SIGKILL.&lt;br /&gt;
&lt;br /&gt;
Run top once, printing results to stdout:&lt;br /&gt;
 $ top -n1 -b&lt;br /&gt;
&lt;br /&gt;
=== [[tr]] ===&lt;br /&gt;
Remove &amp;lt;code&amp;gt;# comments&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;input.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ cat input.txt | sed -e &#039;s/[[:blank:]]*#.*//&#039; | tr -s &#039;\n&#039;;&lt;br /&gt;
&lt;br /&gt;
==== Remove unwanted character sets ====&lt;br /&gt;
Keep only printable characters and spaces from a string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
/bin/bash&lt;br /&gt;
name=&amp;quot;message:おはよう　ございます.&amp;quot;;&lt;br /&gt;
name_new=&amp;quot;$( printf &amp;quot;%s&amp;quot; &amp;quot;$name&amp;quot; | tr -dc &#039;[:graph:][:space:]&#039; )&amp;quot;;&lt;br /&gt;
printf &amp;quot;%s\n&amp;quot; &amp;quot;$name&amp;quot;;&lt;br /&gt;
printf &amp;quot;%s\n&amp;quot; &amp;quot;$name_new&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This results in:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
message:おはよう　ございます.&lt;br /&gt;
message:.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[tree (command)]] ===&lt;br /&gt;
Recursively list contents of current working directory.&lt;br /&gt;
 $ tree&lt;br /&gt;
&lt;br /&gt;
: List contents without colorized text.&lt;br /&gt;
 $ tree | ansi2txt&lt;br /&gt;
&lt;br /&gt;
=== unar ===&lt;br /&gt;
Install on a [[Debian]] system via [[apt]].&lt;br /&gt;
 $ sudo apt update &amp;amp;&amp;amp; sudo apt install unar&lt;br /&gt;
&lt;br /&gt;
Decompress a [[rar]] archive.&lt;br /&gt;
 $ unar archive.rar&lt;br /&gt;
&lt;br /&gt;
=== unzip ===&lt;br /&gt;
&#039;&#039;For &amp;lt;code&amp;gt;.rar&amp;lt;/code&amp;gt; files, see [[#unar]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unzip to directory &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ mkdir foo&lt;br /&gt;
 $ unzip -d foo archive.zip&lt;br /&gt;
&lt;br /&gt;
Unzip archives containing file names encoded in non-English encodings:&lt;br /&gt;
: [[Shift JIS]] [[Japanese]] encoding.&amp;lt;ref name=&amp;quot;askubuntu_20170711_unzip-shiftjis&amp;quot;&amp;gt;[https://askubuntu.com/users/4066/nicolas-raoul Nicolas Raoul].  ([[2017-07-11]]).  “[https://askubuntu.com/a/935023 How to unzip a Japanese ZIP file, and avoid mojibake/garbled characters]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2024-04-12]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ unzip -O shift-jis archive.zip&lt;br /&gt;
: [[Simplified Chinese characters]] encoding.&lt;br /&gt;
 $ unzip -O gb18030 archive.zip  # [[GB 18030]] is a superset of [[GBK]]. Try this first.&lt;br /&gt;
 $ unzip -O gbk archive.zip      # [[GBK (character encoding)|GBK]] an extension of [[GB 2312]].&lt;br /&gt;
 $ unzip -O gb2312 archive.zip   # [[GB 2312]] deprecated in 2017&lt;br /&gt;
: [[Big5]] [[Traditional Chinese characters]] encoding.&lt;br /&gt;
 $ unzip -O big5 archive.zip&lt;br /&gt;
&lt;br /&gt;
=== [[veracrypt]] ===&lt;br /&gt;
Mount a volume.&lt;br /&gt;
 $ veracrypt volume.hc&lt;br /&gt;
&lt;br /&gt;
Unmount all volumes.&lt;br /&gt;
 $ veracrypt -d&lt;br /&gt;
: If you get an error message resembling &amp;lt;code&amp;gt;Error: umount: /media/veracrypt1: target is busy&amp;lt;/code&amp;gt;, then identify the offending process with [[lsof]]&amp;lt;ref name=&amp;quot;so_20111024_unmountbusydev&amp;quot;&amp;gt;[[Frank Tudor|Tudor, Frank]].  ([[2011-10-24]]).  “[https://stackoverflow.com/a/7878763 How to unmount a busy device [closed]]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2023-07-25]].  [https://web.archive.org/web/20230620181852/https://stackoverflow.com/questions/7878707/how-to-unmount-a-busy-device/7878763#7878763 Archived] from the original on [[2023-06-20]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ lsof | grep &#039;/media/veracrypt1&#039;&lt;br /&gt;
&lt;br /&gt;
Unmount a specific volume.&lt;br /&gt;
 $ veracrypt -d volume.hc&lt;br /&gt;
&lt;br /&gt;
Create a volume.&lt;br /&gt;
 $ veracrypt -t -c&lt;br /&gt;
&lt;br /&gt;
=== watch ===&lt;br /&gt;
Perform a command repeatedly and print its output.&lt;br /&gt;
&lt;br /&gt;
Print free disk space (&amp;lt;code&amp;gt;df&amp;lt;/code&amp;gt;) in bytes (&amp;lt;code&amp;gt;-B1&amp;lt;/code&amp;gt;) every second (&amp;lt;code&amp;gt;-n1&amp;lt;/code&amp;gt;), highlighting changes &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ watch -d -n1 df -B1&lt;br /&gt;
&lt;br /&gt;
=== [[wc]] ===&lt;br /&gt;
Word count. Part of GNU Coreutils 8.32.&lt;br /&gt;
&lt;br /&gt;
Count bytes in a file named &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ wc -c foo.txt&lt;br /&gt;
 20087&lt;br /&gt;
&lt;br /&gt;
Count the bytes in the file name &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt; (with an off-by-one error due to Bash adding a trailing newline character).&lt;br /&gt;
 $ wc -c &amp;lt;&amp;lt;&amp;lt; &amp;quot;foo.txt&amp;quot;&lt;br /&gt;
 8&lt;br /&gt;
&lt;br /&gt;
Count the bytes in the file name &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ filename=&amp;quot;foo.txt&amp;quot;; printf &amp;quot;%s&amp;quot; &amp;quot;$filename&amp;quot; | wc -c&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
=== [[wondershaper]] ===&lt;br /&gt;
Limit bandwidth of network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;{{bk}}: [[2024-01-12]]: Network interfaces and [[DHCP]]-assigned [[IP address]]es can be listed via &amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt;.&amp;lt;/ref&amp;gt; to 5000kbps download and 1000kbps upload.&lt;br /&gt;
 $ wondershaper eth0 5000 1000&lt;br /&gt;
&lt;br /&gt;
Clear [[wondershaper]] limits.&lt;br /&gt;
 $ wondershaper clear&lt;br /&gt;
&lt;br /&gt;
=== [[yt-dlp]] ===&lt;br /&gt;
&#039;&#039;For all options, see [[yt-dlp]] GitHub page [https://github.com/yt-dlp/yt-dlp here].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See example wrapper script [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/107b9c5341a52d03350d698b5ec42e26d810a93c/user/bkytpldl-generic here (&amp;lt;code&amp;gt;bkytpldl-generic&amp;lt;/code&amp;gt; v4.1.1)].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay between downloads&lt;br /&gt;
 $ yt-dlp --sleep-requests 2&lt;br /&gt;
&lt;br /&gt;
Remember downloaded videos to avoid redownload attempts.&lt;br /&gt;
 $ yt-dlp --download-archive some/path/history.txt &amp;quot;$URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Randomize order in which playlist items are downloaded.&lt;br /&gt;
 $ yt-dlp --playlist-random &amp;quot;$URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Handle &amp;lt;code&amp;gt;File name too long&amp;lt;/code&amp;gt; error by limiting long fields by byte count.&amp;lt;ref name=&amp;quot;ytdlp_2021_long-filename&amp;quot;&amp;gt;[[tylerszabo]]. ([[2021-10-01]]). “[https://github.com/yt-dlp/yt-dlp/issues/1136  [Feature request] Handle Long filenames in default template and temporary files #1136]”.  &#039;&#039;[[github.com]]&#039;&#039;, [[yt-dlp]].  Accessed [[2024-07-25]].  “&amp;lt;code&amp;gt;$ yt-dlp -o &#039;%(title).200B.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;&amp;lt;/code&amp;gt;”.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ yt-dlp -o &#039;%(title).140B.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;  # limits title to 140 bytes&lt;br /&gt;
 $ yt-dlp -o &#039;%(title)s.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;      # may fail if title too long&lt;br /&gt;
&lt;br /&gt;
Download lowest quality.&amp;lt;ref name=&amp;quot;su_20210806_ytdlp-lowest-quality&amp;quot;&amp;gt;[https://superuser.com/users/1052727/sherman Sherman].  ([[2021-08-06]]).  “[https://superuser.com/a/1667932/1142336 Download the lowest quality video with youtube-dl]”.  &#039;&#039;[[superuser.com]]&#039;&#039;.  Accessed [[2024-02-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ yt-dlp -S &#039;+size,+br&#039;&lt;br /&gt;
&lt;br /&gt;
Write automatic subtitles of a [[YouTube]] video to a &amp;lt;code&amp;gt;.vtt&amp;lt;/code&amp;gt; file:&lt;br /&gt;
 $ yt-dlp --write-subs --write-auto-subs https://www.youtube.com/watch?v=bbkUn0o3L1Y&lt;br /&gt;
&lt;br /&gt;
: Parse such a &amp;lt;code&amp;gt;.vtt&amp;lt;/code&amp;gt; file in order to extract the text (reading every 8th line with an offset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;clear; offset=1; cycle=8; n=0; {&lt;br /&gt;
  while read -r line; do&lt;br /&gt;
    if [[ ! $((n % cycle)) -eq &amp;quot;$offset&amp;quot; ]]; then&lt;br /&gt;
      ((n++)); continue; fi;&lt;br /&gt;
    printf &amp;quot;%s\n&amp;quot; &amp;quot;$line&amp;quot;;&lt;br /&gt;
    ((n++));&lt;br /&gt;
  done &amp;amp;lt; Unicode\ and\ Byte\ Order\ \[bbkUn0o3L1Y\].en.vtt;&lt;br /&gt;
  echo &amp;quot;STATUS:Done.&amp;quot; 1&amp;gt;&amp;amp;2;&lt;br /&gt;
} | grep -v &amp;quot;^$&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[xargs]] ===&lt;br /&gt;
Break up many lines into groups to avoid [[xargs]] limits on argument counts and maximum command lengths.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
bite=100;  # group size  ADJUST ME&lt;br /&gt;
n=1;  # initialize loop counter&lt;br /&gt;
declare -a buffer;  # initialize line group&lt;br /&gt;
&lt;br /&gt;
# Populate and process full groups.&lt;br /&gt;
while read -r line; do&lt;br /&gt;
  buffer+=(&amp;quot;$line&amp;quot;);&lt;br /&gt;
  if [[ $(( n % bite )) -eq 0 ]]; then&lt;br /&gt;
    printf &amp;quot;%s\n&amp;quot; &amp;quot;${buffer[@]}&amp;quot; | xargs echo;  # ADJUST ME  replace &#039;echo&#039; with your command  &lt;br /&gt;
    unset buffer;&lt;br /&gt;
    sleep 1;  # throttle&lt;br /&gt;
  fi;&lt;br /&gt;
  ((n++));&lt;br /&gt;
done &amp;lt; &amp;lt;(seq 1 1000);  # ADJUST ME  replace with command that generates many lines  &lt;br /&gt;
&lt;br /&gt;
# Handle final partially filled group.&lt;br /&gt;
if [[ &amp;quot;${#buffer[@]}&amp;quot; -gt 0 ]]; then&lt;br /&gt;
  printf &amp;quot;%s\n&amp;quot; &amp;quot;${buffer[@]}&amp;quot; | xargs echo;  # ADJUST ME  replace &#039;echo&#039; with your command&lt;br /&gt;
fi;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert several lines of [[stdin]] into words. This may be useful if a command needs to perform an operation on all items in a long [[newline-delimited]] [[list]] as [[argument]] [[parameters]] instead of [[standard input]]. The following expressions are equivalent calls of [[ls]] to list the files &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;baz&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $ printf &amp;quot;foo\nbar\nbaz\n&amp;quot; | xargs -d &#039;\n&#039; ls -alh;&lt;br /&gt;
 $ ls -alh foo bar baz;&lt;br /&gt;
: Note: &amp;lt;code&amp;gt;-d &#039;\n&#039;&amp;lt;/code&amp;gt; requires that only [[newlines]] are used to separate (i.e. [[delimiter|delimit]]) arguments. The &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; option is necessary in newline-delimited lists because &amp;lt;code&amp;gt;xargs&amp;lt;/code&amp;gt; will split lines on [[whitespace characters]] such as the [[space character]]. For example, &amp;lt;code&amp;gt;printf &amp;quot;1 qux\n2 quux\n3 corge\n&amp;quot; | xargs -d &#039;\n&#039; ls -alh;&amp;lt;/code&amp;gt; will not apply &amp;lt;code&amp;gt;ls -alh&amp;lt;/code&amp;gt; to the three files &amp;lt;code&amp;gt;1 qux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2 quux&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;3 corge&amp;lt;/code&amp;gt;, but instead will erroneously use six other files &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;qux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;quux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;corge&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[zip]] ===&lt;br /&gt;
Compress a directory &amp;lt;code&amp;gt;my_dir&amp;lt;/code&amp;gt; into a zip archive &amp;lt;code&amp;gt;my_dir.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ dir_in=./my_dir; zip_out=&amp;quot;${dir_in}.zip&amp;quot;; zip -r &amp;quot;$zip_out&amp;quot; &amp;quot;$dir_in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{refsec}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Command line]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Emacs_notes&amp;diff=198203</id>
		<title>Emacs notes</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Emacs_notes&amp;diff=198203"/>
		<updated>2026-05-12T02:22:55Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This page contains notes for using [[Emacs]].     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==Commands==&lt;br /&gt;
; downcase-region&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;C-x C-l&amp;lt;/code&amp;gt;) Lowercases selected region. See also &#039;&#039;&#039;upcase-region&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; downcase-word&lt;br /&gt;
: (Shorcut: &amp;lt;code&amp;gt;M-l&amp;lt;/code&amp;gt;) Lowercases word after point.&lt;br /&gt;
&lt;br /&gt;
; capitalize-word&lt;br /&gt;
: (Shorcut: &amp;lt;code&amp;gt;M-c&amp;lt;/code&amp;gt;) Uppercase word following point.&lt;br /&gt;
&lt;br /&gt;
; fill-paragraph&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;M-q&amp;lt;/code&amp;gt;) Depending on mode, reduces column width of text to that set by &amp;lt;code&amp;gt;set-fill-column&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; query-replace&lt;br /&gt;
: Search and replace, prompting (i.e. querying) for each replacement.&lt;br /&gt;
&lt;br /&gt;
; query-replace-regexp&lt;br /&gt;
: Search and replace with [[regular expressions]]{{bkc|[[2025-01-20]]: For more on [[Emacs]]&#039;s particular flavor of [[regular expressions]], see the [https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexps.html manual]. }}, prompting (i.e. querying) for each replacement.&lt;br /&gt;
&lt;br /&gt;
; quoted-insert TAB&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;C-q TAB&amp;lt;/code&amp;gt;) Inserts a &amp;lt;code&amp;gt;TAB&amp;lt;/code&amp;gt; character.&lt;br /&gt;
&lt;br /&gt;
; revert-buffer&lt;br /&gt;
: Reload file to buffer, discarding changes to update to latest state currently written on disk.&lt;br /&gt;
&lt;br /&gt;
; set-fill-column&lt;br /&gt;
: Prompts setting the paragraph width produced by commands such as &amp;lt;code&amp;gt;fill-paragraph&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; toggle-truncate-lines&lt;br /&gt;
: Make long lines [[word wrap|wrap]] around to stay within view in a window.&lt;br /&gt;
&lt;br /&gt;
; text-scale-adjust&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;C-x C-+&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;C-x  C-=&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;C-x C--&amp;lt;/code&amp;gt;) Increase or decrease size of text, pressing &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; to adjust. Note: only effective on GUI.&lt;br /&gt;
&lt;br /&gt;
; upcase-region&lt;br /&gt;
: (Shortcut: &amp;lt;code&amp;gt;C-x C-u&amp;lt;/code&amp;gt;) Uppercases selected region. See also &#039;&#039;&#039;downcase-region&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; upcase-word&lt;br /&gt;
: (Shorcut: &amp;lt;code&amp;gt;M-u&amp;lt;/code&amp;gt;) Uppercases word after point. See also &#039;&#039;&#039;downcase-word&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Modes==&lt;br /&gt;
===hs-minor-mode===&lt;br /&gt;
[https://www.gnu.org/software/emacs/manual/html_node/emacs/Hideshow.html Reference manual].&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* Hide current block (&amp;lt;code&amp;gt;M-x hs-hide-block&amp;lt;/code&amp;gt;)&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-h&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-d&amp;lt;/code&amp;gt; (note: required for [[vg2]]&#039;s [[LXQt]] desktop environment )&lt;br /&gt;
* Show current block (&amp;lt;code&amp;gt;M-x hs-show-block&amp;lt;/code&amp;gt;)&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-s&amp;lt;/code&amp;gt;&lt;br /&gt;
* Hide all&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-M-h&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-t&amp;lt;/code&amp;gt;&lt;br /&gt;
* Show all&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-M-s&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;C-c @ C-a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===visual-line-mode===&lt;br /&gt;
Wraps lines at word boundaries.&amp;lt;ref name=&amp;quot;so_20100719_emacs-visual-line-mode&amp;quot;&amp;gt;[https://stackoverflow.com/users/395927/kirk-kelsey Kirk Kelsey].  ([[2010-07-19]]).  “[https://stackoverflow.com/a/3282132 How can I enable line wrap on word boundaries only in Emacs?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-03-13]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 M-x visual-line-mode&lt;br /&gt;
&lt;br /&gt;
==Useful techniques==&lt;br /&gt;
Reformat footnote numbers with &amp;lt;code&amp;gt;query-replace-regexp&amp;lt;/code&amp;gt; in [[Mediawiki]] wikicode. (e.g. link to a corresponding &amp;lt;code&amp;gt;#c4n{n}&amp;lt;/code&amp;gt; anchor in a subpage at &amp;lt;code&amp;gt;&amp;amp;#91;&amp;amp;#91;../Notes&amp;amp;#93;&amp;amp;#93;&amp;lt;/code&amp;gt;.)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
 M-x query-replace-regexp&lt;br /&gt;
 \([0-9]+\) &lt;br /&gt;
 &amp;lt;sup&amp;gt;[[../Notes#c4n\1|\1]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
 RET&lt;br /&gt;
&lt;br /&gt;
 M-x query-replace-regexp&lt;br /&gt;
 \([0-9]+\)$&lt;br /&gt;
 &amp;lt;sup&amp;gt;[[../Notes#c4n\1|\1]]&amp;lt;/sup&amp;gt;&lt;br /&gt;
 RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Turn roman numeral subsection into roman numeral subsubsection via &amp;lt;code&amp;gt;query-replace-regexp&amp;lt;/code&amp;gt; using a [[Regular_expression#backreferences|backreference]]&amp;lt;ref name=&amp;quot;gnu_2025_emacs-replace-regexp&amp;quot;&amp;gt;“[https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Replace.html 17.10.2 Regexp Replacement]”.  &#039;&#039;[[gnu.org]]&#039;&#039;.  Accessed [[2025-10-17]].  &amp;lt;/ref&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
^J== \([IVX]+\) ==^J&lt;br /&gt;
;; Note: the above may be composed via: C-q C-j = = \ ( [ I V X ] + \ ) = = C-q C-j RET&lt;br /&gt;
^J=== \1 ===^J&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: This converts&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
== VII ==&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: into:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
=== VII ===&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add spaces between 3-digit number groups.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
\([0-9]\{3\}\)&lt;br /&gt;
;; Note: keystrokes: \ ( [ 0 - 9 ] \ { 3 \ } \ )&lt;br /&gt;
 \1 &lt;br /&gt;
;; Note: keystrokes: SPC \ 1 SPC&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add square brackets around 3 or 4-digit number groups.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
\([0-9]\{3,4\}\)&lt;br /&gt;
;; Note: keystrokes: \ ( [ 0 - 9 ] \ { 3 , 4 \ } \ )&lt;br /&gt;
[[\1]]&lt;br /&gt;
;; Note: keystrokes: [ [ \ 1 ] ]&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove square brackets around 3 or 4-digit number groups.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
\[\[\([0-9]\{3,4\}\)\]\]&lt;br /&gt;
;; Note: keystrokes: \ [ \ [ \ ( [ 0 - 9 ] \ { 3 , 4 \ } \ ) \ ] \ ]&lt;br /&gt;
[[\1]]&lt;br /&gt;
;; Note: keystrokes: [ [ \ 1 ] ]&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace double square brackets with parentheses. (e.g. &amp;lt;code&amp;gt;[[&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;]]&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;((&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;))&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
[]]\{2\}&lt;br /&gt;
))&lt;br /&gt;
RET&lt;br /&gt;
M-x query-replace-regexp&lt;br /&gt;
[[]\{2\}&lt;br /&gt;
((&lt;br /&gt;
RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Emacs]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
* [https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html gnu.org manual]&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Baltakatei%27s_Useful_CLI_Commands&amp;diff=198202</id>
		<title>Baltakatei&#039;s Useful CLI Commands</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Baltakatei%27s_Useful_CLI_Commands&amp;diff=198202"/>
		<updated>2026-05-12T02:20:42Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: update according to command history as of 2026-05&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly [[Debian]] GNU/Linux command line interface commands.&lt;br /&gt;
&lt;br /&gt;
For [[Windows NT|Windows]], see [[Powershell notes]].    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
== Stats ==&lt;br /&gt;
* Author: [[Steven Baltakatei Sandoval]]&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
Baltakateiʼs most used command-line programs are (as of [[2026-05]]):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Baltakateiʼs CLI usage distribution&lt;br /&gt;
|-&lt;br /&gt;
! command !! count !! does what&lt;br /&gt;
|-&lt;br /&gt;
| [[#ls|ls]]&lt;br /&gt;
| 13000&lt;br /&gt;
| list directory contents&lt;br /&gt;
|-&lt;br /&gt;
| [[#cd|cd]]&lt;br /&gt;
| 9000&lt;br /&gt;
| change directory&lt;br /&gt;
|-&lt;br /&gt;
| exit&lt;br /&gt;
| 5600&lt;br /&gt;
| (built-in) close terminal window&lt;br /&gt;
|-&lt;br /&gt;
| [[#find|find]]&lt;br /&gt;
| 5100&lt;br /&gt;
| Search file system by file name, size, age, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[#emacs|emacs]]&lt;br /&gt;
| 2900&lt;br /&gt;
| Edit text files.&lt;br /&gt;
|-&lt;br /&gt;
| history&lt;br /&gt;
| 2300&lt;br /&gt;
| (built-in) View command history. Often searched via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$ history | grep&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#locate|locate]]&lt;br /&gt;
| 2200&lt;br /&gt;
| Search file system by file name via daily index for speed.&lt;br /&gt;
|-&lt;br /&gt;
| [[#cat|cat]]&lt;br /&gt;
| 2000&lt;br /&gt;
| Concatenate text files. Often with command pipe line (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;cat | grep | sed&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| [[#grep|grep]]&lt;br /&gt;
| 1200&lt;br /&gt;
| Search file internals through [[regular expression]]s.&lt;br /&gt;
|-&lt;br /&gt;
| [[#mkdir|mkdir]]&lt;br /&gt;
| 1100&lt;br /&gt;
| Create directory.&lt;br /&gt;
|-&lt;br /&gt;
| [[#rm|rm]]&lt;br /&gt;
| 1100&lt;br /&gt;
| Delete file or directory.&lt;br /&gt;
|-&lt;br /&gt;
| [[#man|man]]&lt;br /&gt;
| 1100&lt;br /&gt;
| View manual for a commandʼs package (e.g. &amp;lt;code&amp;gt;man grep&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| while&lt;br /&gt;
| 1000&lt;br /&gt;
| (built-in) Initiate while loop&lt;br /&gt;
|-&lt;br /&gt;
| time&lt;br /&gt;
| 900&lt;br /&gt;
| Measure time used until a command completes. (shell keyword)&lt;br /&gt;
|-&lt;br /&gt;
| [[#mv|mv]]&lt;br /&gt;
| 800&lt;br /&gt;
| Move a file or directory.&lt;br /&gt;
|-&lt;br /&gt;
| echo&lt;br /&gt;
| 700&lt;br /&gt;
| (built-in) Print text to the shell.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ps|ps]]&lt;br /&gt;
| 700&lt;br /&gt;
| List process info. (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;ps aux | grep bash&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| [[#less|less]]&lt;br /&gt;
| 700&lt;br /&gt;
| Display text file or stream with scroll capability.&lt;br /&gt;
|-&lt;br /&gt;
| [[#sudo|sudo]]&lt;br /&gt;
| 600&lt;br /&gt;
| Perform next command as superuser.&lt;br /&gt;
|-&lt;br /&gt;
| [[#bash|bash]]&lt;br /&gt;
| 600&lt;br /&gt;
| Manually execute a Bash script file.&lt;br /&gt;
|-&lt;br /&gt;
| [[#du|du]]&lt;br /&gt;
| 600&lt;br /&gt;
| Display disk usage.&lt;br /&gt;
|-&lt;br /&gt;
| [[#cp|cp]]&lt;br /&gt;
| 600&lt;br /&gt;
| Copy a file.&lt;br /&gt;
|-&lt;br /&gt;
| [[#clear|clear]]&lt;br /&gt;
| 500&lt;br /&gt;
| Clear shell&#039;s dislayed text. Comparable to &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| [[#printf|printf]]&lt;br /&gt;
| 500&lt;br /&gt;
| Print text with customized format.&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| 400&lt;br /&gt;
| (built-in) Tell how text will be interpreted by shell (e.g. alias, executable)&lt;br /&gt;
|-&lt;br /&gt;
| [[#mpv|mpv]]&lt;br /&gt;
| 400&lt;br /&gt;
| Play audio or video.&lt;br /&gt;
|-&lt;br /&gt;
| [[#rsync|rsync]]&lt;br /&gt;
| 400&lt;br /&gt;
| Move, copy, or synchronize files and/or directories.&lt;br /&gt;
|-&lt;br /&gt;
| [[BK-2020-03#bkdatev|bkdatev]]&lt;br /&gt;
| 300&lt;br /&gt;
| Display or parse date and time information for specific time zones. ([[BK-2020-03]]: [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/master/user/bkdatev?ref_type=heads gitlab]).&lt;br /&gt;
|-&lt;br /&gt;
| [[#watch|watch]]&lt;br /&gt;
| 300&lt;br /&gt;
| Repeatedly perform a command and highlight changes in stdout. (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;watch -d -n1 df -B1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| [[#seq|seq]]&lt;br /&gt;
| 300&lt;br /&gt;
| Print a sequence of integer values.&lt;br /&gt;
|-&lt;br /&gt;
| [[#git|git]]&lt;br /&gt;
| 300&lt;br /&gt;
| Version control a repository of files.&lt;br /&gt;
|-&lt;br /&gt;
| for&lt;br /&gt;
| 300&lt;br /&gt;
| (built-in) Starting a loop to execute a command set repeatedly.&lt;br /&gt;
|-&lt;br /&gt;
| [[#date|date]]&lt;br /&gt;
| 300&lt;br /&gt;
| Display or parse date and time information.&lt;br /&gt;
|-&lt;br /&gt;
| [[#rmdir|rmdir]]&lt;br /&gt;
| 300&lt;br /&gt;
| Remove an empty directory.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ffmpeg|ffmpeg]]&lt;br /&gt;
| 300&lt;br /&gt;
| Create or modify video file.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ssh|ssh]]&lt;br /&gt;
| 200&lt;br /&gt;
| Create remote shell session.&lt;br /&gt;
|-&lt;br /&gt;
| [[#readlink|readlink]]&lt;br /&gt;
| 200&lt;br /&gt;
| Resolve a symbolic link. (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$ readlink -f some_symlink&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#apt|apt]]&lt;br /&gt;
| 200&lt;br /&gt;
| Update or install software.&lt;br /&gt;
|-&lt;br /&gt;
| [[#jdupes|jdupes]]&lt;br /&gt;
| 200&lt;br /&gt;
| Deduplicate files.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ln|ln]]&lt;br /&gt;
| 200&lt;br /&gt;
| Create or modify symbolic links.&lt;br /&gt;
|-&lt;br /&gt;
| [[#pwd|pwd]]&lt;br /&gt;
| 200&lt;br /&gt;
| Print the shellʼs current working directory.&lt;br /&gt;
|-&lt;br /&gt;
| [[#reset|reset]]&lt;br /&gt;
| 200&lt;br /&gt;
| Reïnitialize shell display. (e.g. clear bugs from displaying raw binary data)&lt;br /&gt;
|-&lt;br /&gt;
| [[#shellcheck|shellcheck]]&lt;br /&gt;
| 200&lt;br /&gt;
| [[Lint (software)|Delint]] a shell script.&lt;br /&gt;
|-&lt;br /&gt;
| [[#chmod|chmod]]&lt;br /&gt;
| 200&lt;br /&gt;
| Modify file permissions.&lt;br /&gt;
|-&lt;br /&gt;
| [[#ffprobe|ffprobe]]&lt;br /&gt;
| 200&lt;br /&gt;
| View audio or video file metadata.&lt;br /&gt;
|-&lt;br /&gt;
| [[#exiftool|exiftool]]&lt;br /&gt;
| 100&lt;br /&gt;
| View or modify photograph file data.&lt;br /&gt;
|-&lt;br /&gt;
| [[#file|file]]&lt;br /&gt;
| 100&lt;br /&gt;
| Classify file type. (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;file /bin/bash&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; )&lt;br /&gt;
|-&lt;br /&gt;
| [[#top|top]]&lt;br /&gt;
| 100&lt;br /&gt;
| List processes by CPU usage and other characteristics.&lt;br /&gt;
|-&lt;br /&gt;
| [[#df|df]]&lt;br /&gt;
| 100&lt;br /&gt;
| List disk usage. (e.g. in bytes: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;df -B1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| [[#sumdir|sumdir]]&lt;br /&gt;
| 100&lt;br /&gt;
| Generate or verify list of cryptographic digests of files. ([https://github.com/monking/shell-utilities/blob/main/sumdir monking custom script])&lt;br /&gt;
|-&lt;br /&gt;
| [[#shuf|shuf]]&lt;br /&gt;
| 100&lt;br /&gt;
| Generate random integers from &amp;lt;code&amp;gt;/dev/urandom&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
=== Linux kernel stuff ===&lt;br /&gt;
Flush cache.&amp;lt;ref&amp;gt;[https://unix.stackexchange.com/users/542349/pavan pavan].  ([[2022-09-22]]).  “[https://unix.stackexchange.com/a/718217 Setting /proc/sys/vm/drop_caches to clear cache]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-09-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo sh -c &amp;quot;sync; echo 3 &amp;gt; /proc/sys/vm/drop_caches&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [[ansi2txt]] ===&lt;br /&gt;
Part of the [[colorized-logs]] [[Debian]] package.&lt;br /&gt;
&lt;br /&gt;
Remove color codes from text.&amp;lt;ref&amp;gt;https://stackoverflow.com/a/67316339/10850071&amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ ansi2txt &amp;lt; ./input.txt &amp;gt; ./output.txt&lt;br /&gt;
  $ cat input.txt | ansi2txt &amp;gt; output.txt  # alternate method with pipes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[[grep]]&amp;lt;/code&amp;gt; example that searches file.txt, highlighting “2023” in color.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
  $ grep --color=always -- &amp;quot;2023&amp;quot; file.txt                           # view with color&lt;br /&gt;
  $ grep --color=always -- &amp;quot;2023&amp;quot; file.txt &amp;gt; results_color.txt       # store with color-codes&lt;br /&gt;
  $ ansi2txt &amp;lt; ./results_color.txt &amp;gt; ./results_nocolor.txt           # strip color codes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== apt ===&lt;br /&gt;
Show details of any package, installed or not.&lt;br /&gt;
 $ apt show &amp;amp;#91;package-name&amp;amp;#93;&lt;br /&gt;
 $ apt show gpg  # example&lt;br /&gt;
&lt;br /&gt;
Check which packages depend on package &amp;lt;code&amp;gt;package-name&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;askubuntu_20181126_rdepends&amp;quot;&amp;gt;[[Corrado Topi]].  ([[2018-11-26]]).  “[https://askubuntu.com/a/1096318 How to list dependent packages (reverse dependencies)?]”.  &#039;&#039;askubuntu.com&#039;&#039;.  Accessed [[2023-07-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ apt rdepends package-name&lt;br /&gt;
&lt;br /&gt;
Install upgrades without prompts&amp;lt;ref&amp;gt;https://unix.stackexchange.com/a/314281/411854&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
=== base64 ===&lt;br /&gt;
Calculate [[MD5]] [[checksum]] of a binary file.&amp;lt;ref&amp;gt;{{bk}}: [[2024-01-12]]: Note, &amp;lt;code&amp;gt;md5&amp;lt;/code&amp;gt; may be replaced with &amp;lt;code&amp;gt;sha256&amp;lt;/code&amp;gt; to get a [[SHA-256]] digest.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ openssl md5 -binary foo.txt | base64  # with [[openssl]] and [[base64]]&lt;br /&gt;
 $ md5sum --binary foo.txt | cut -d&#039; &#039; -f1 | xxd -r -p | base64  # with [[md5sum]], [[xxd]] and [[base64]]&amp;lt;ref name=&amp;quot;se_20101101_base64-xxd&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/1946/alex alex]  ([[2010-11-01]]).  “[https://unix.stackexchange.com/a/3678/ How can I get a base64 encoded shaX on the cli?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-01-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[bash]] ===&lt;br /&gt;
[https://www.gnu.org/software/bash/manual/bash.html Manual].&lt;br /&gt;
&lt;br /&gt;
Check if &amp;lt;code&amp;gt;$stringA&amp;lt;/code&amp;gt; comes alphabetically before &amp;lt;code&amp;gt;$stringB&amp;lt;/code&amp;gt; using current locale.&lt;br /&gt;
 $ if [[ &amp;quot;$stringA&amp;quot; &amp;lt; &amp;quot;$stringB&amp;quot; ]]; then echo true; else echo false; fi;&lt;br /&gt;
&lt;br /&gt;
Search &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; results with &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; using the exit code from a statement evaluated by the built-in &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ mkdir a;&lt;br /&gt;
 $ touch ./a/foo.txt&lt;br /&gt;
 $ touch ./a/bar.txt&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;foo&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found:&lt;br /&gt;
 ./a/foo.txt&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;baz&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found nothing.&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;.txt$&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found:&lt;br /&gt;
 ./a/bar.txt&lt;br /&gt;
 ./a/foo.txt&lt;br /&gt;
&lt;br /&gt;
Use modulo integer math to print the integers between 0 and 100 that are divisible by 5.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 for ((i=0; i&amp;amp;lt;=100; i++)); do&lt;br /&gt;
   if [ $((i % 5)) -eq 0 ]; then&lt;br /&gt;
     echo $i&lt;br /&gt;
   fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Count the number of occurrences of a single ASCII character (e.g. &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;) (see [https://stackoverflow.com/a/16679640 ref])&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 var=&amp;quot;text,text,text,text&amp;quot;&lt;br /&gt;
 res=&amp;quot;${var//[^,]}&amp;quot;&lt;br /&gt;
 echo &amp;quot;$res&amp;quot;&lt;br /&gt;
 echo &amp;quot;${#res}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Quotation rules ====&lt;br /&gt;
How to insert a single apostrophe into an already single-apostrophe-quoted string.&lt;br /&gt;
 $ echo &amp;quot;You can&#039;t do it easily&amp;quot; | sed -E -e &#039;s/can&#039;\&#039;&#039;t/can/&#039;  # sed example&lt;br /&gt;
 You can do it easily.&lt;br /&gt;
&lt;br /&gt;
==== Bash input/output ====&lt;br /&gt;
Provide string to a command via stdin. The following are equivalent.&lt;br /&gt;
 $ echo &amp;quot;666&amp;quot; | sed &#039;s/6/7/g&#039;;              # Uses pipe format.&lt;br /&gt;
 777&lt;br /&gt;
 $ myVar=&amp;quot;666&amp;quot;; sed &#039;s/6/7/g &amp;lt;&amp;lt;&amp;lt; &amp;quot;$myVar&amp;quot;;  # Uses “here string” format.&amp;lt;ref&amp;gt;See https://www.gnu.org/software/bash/manual/bash.html#Here-Strings .&amp;lt;/ref&amp;gt;&lt;br /&gt;
 777&lt;br /&gt;
&lt;br /&gt;
Supply the first line of a text file as an argument.&lt;br /&gt;
 $ fpass=/dev/shm/password.txt;           # create file&lt;br /&gt;
 $ touch &amp;quot;$fpass&amp;quot; &amp;amp;&amp;amp; chmod 700 &amp;quot;$fpass&amp;quot;;  # set to user-only permission&lt;br /&gt;
 $ echo &amp;quot;hunter2&amp;quot; &amp;gt; &amp;quot;$fpass&amp;quot;;             # save password to file&lt;br /&gt;
 $ echo &amp;quot;$(head -n1 &amp;quot;$fpass&amp;quot;)&amp;quot;;     # read contents of file as argument&lt;br /&gt;
&lt;br /&gt;
==== Bash job management ====&lt;br /&gt;
&#039;&#039;See https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Job-Control &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Push job into background.&lt;br /&gt;
 ^Z   # (i.e. Ctrl-Z)&lt;br /&gt;
 [1]+ Stopped     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a&lt;br /&gt;
&lt;br /&gt;
Get a list of current background jobs&lt;br /&gt;
 $ jobs&lt;br /&gt;
 [1]+ Stopped     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a&lt;br /&gt;
&lt;br /&gt;
Restart a job (e.g. one with &amp;lt;code&amp;gt;jobspec&amp;lt;/code&amp;gt; 1) in the background and check that it is running.&lt;br /&gt;
 $ bg 1&lt;br /&gt;
 [1]+ git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a &amp;amp;&lt;br /&gt;
 $ jobs&lt;br /&gt;
 [1]+ Running     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Detach a job (e.g. one with &amp;lt;code&amp;gt;jobspec&amp;lt;/code&amp;gt; 1) from the current shell to permit safe exit without terminating the job.&lt;br /&gt;
 $ disown %1&lt;br /&gt;
&lt;br /&gt;
==== Bash string manipulation ====&lt;br /&gt;
&#039;&#039;See [https://tldp.org/LDP/abs/html/string-manipulation.html Manipulating Strings].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;lt;code&amp;gt;${parameter}&amp;lt;/code&amp;gt; syntax invokes what is known as “Parameter Expansion”.&amp;lt;ref name=&amp;quot;gnu_2025_shell-param-exp&amp;quot;&amp;gt;&lt;br /&gt;
“[https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html Bash Features: 3.5.3 Shell Parameter Expansion]”. (n.d.). &#039;&#039;[[gnu.org]]&#039;&#039;.  Accessed [[2025-10-21]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace substring in variable.&amp;lt;ref name=&amp;quot;cooper_20140310_bash-strings&amp;quot;&amp;gt;[[Mendel Cooper]].  ([[2014-03-10]]).  “[https://tldp.org/LDP/abs/html/string-manipulation.html Advanced Bash-Scripting Guide: 10. Manipulating Strings]”.  &#039;&#039;[[tldp.org]]&#039;&#039;.  Accessed [[2024-02-12]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ myVar=&amp;quot;foobarbaz&amp;quot;;&lt;br /&gt;
$ echo &amp;quot;${myVar/bar/qux}&amp;quot;;&lt;br /&gt;
fooquxbaz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get first 7 characters of a string.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:0:7}&amp;quot;  # i.e. starting with character &#039;0&#039;, print &#039;7&#039; characters&lt;br /&gt;
 deadbee&lt;br /&gt;
&lt;br /&gt;
Print substring by specifying index and desired substring length.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:4:3}&amp;quot;  # i.e. starting with character &#039;4&#039;, print &#039;3&#039; characters&lt;br /&gt;
 bee&lt;br /&gt;
&lt;br /&gt;
Get last 4 characters of a string.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:(-4)}&amp;quot;;&lt;br /&gt;
 beef&lt;br /&gt;
&lt;br /&gt;
Lowercase characters in a variable&lt;br /&gt;
 $ myVar=&amp;quot;fooBARbaz&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar,,}&amp;quot;;&lt;br /&gt;
 foobarbaz&lt;br /&gt;
&lt;br /&gt;
Remove shortest matching pattern (e.g. &amp;lt;code&amp;gt;bar*&amp;lt;/code&amp;gt;) from end of variable.&lt;br /&gt;
 $ myVar=&amp;quot;foobarbar&amp;quot;; myVar2=&amp;quot;${myVar%bar*}&amp;quot;; declare -p myVar myVar2&lt;br /&gt;
 declare -- myVar=&amp;quot;foobarbar&amp;quot;&lt;br /&gt;
 declare -- myVar2=&amp;quot;foobar&amp;quot;    # only one &#039;bar&#039; removed&lt;br /&gt;
&lt;br /&gt;
Remove longest matching pattern (e.g. &amp;lt;code&amp;gt;bar*&amp;lt;/code&amp;gt;) from end of variable.&lt;br /&gt;
 $ myVar=&amp;quot;foobarbar&amp;quot;; myVar2=&amp;quot;${myVar%%bar*}&amp;quot;; declare -p myVar myVar2&lt;br /&gt;
 declare -- myVar=&amp;quot;foobarbar&amp;quot;&lt;br /&gt;
 declare -- myVar2=&amp;quot;foo&amp;quot;       # all the &#039;bar&#039;ʼs removed&lt;br /&gt;
&lt;br /&gt;
: Works with array parameter expansion too.&lt;br /&gt;
 $ myVar=&amp;quot;$(printf &amp;quot;foo\tbar\tbaz\n&amp;quot;)&amp;quot;; myArr[3]=&amp;quot;$myVar&amp;quot;; echo &amp;quot;${myArr[3]}&amp;quot;;&lt;br /&gt;
 foo	bar	baz&lt;br /&gt;
 $ echo &amp;quot;${myArr[3]%$&#039;\t&#039;*}&amp;quot;;  # cutoff starts at last tab &#039;\t&#039;&lt;br /&gt;
 foo	bar&lt;br /&gt;
 $ echo &amp;quot;${myArr[3]%%$&#039;\t&#039;*}&amp;quot;  # cutoff starts at first tab &#039;\t&#039;&lt;br /&gt;
 foo&lt;br /&gt;
&lt;br /&gt;
==== Array manipulation ====&lt;br /&gt;
Declare an array. (usually not needed, but good practice; not an “associative array”)&lt;br /&gt;
 $ declare -a my_array&lt;br /&gt;
&lt;br /&gt;
Store lines into an array. (Requires [[Bash]] version 4 or above)&lt;br /&gt;
 $ mapfile -t my_array &amp;lt; &amp;lt;(find &amp;quot;$HOME&amp;quot; -type f)  # store file list&lt;br /&gt;
 $ mapfile -t my_array &amp;lt; &amp;lt;(seq 1 10)              # store the integers 1 through 10&lt;br /&gt;
&lt;br /&gt;
Store lines into an array without &amp;lt;code&amp;gt;mapfile&amp;lt;/code&amp;gt; and process substitution (&amp;lt;code&amp;gt;&amp;lt; &amp;lt;(...)&amp;lt;/code&amp;gt;); compatible with Bash 3.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while IFS=&#039;&#039; read -r line; do&lt;br /&gt;
  my_array+=(&amp;quot;$line&amp;quot;);&lt;br /&gt;
done &amp;lt; &amp;lt;(find &amp;quot;$HOME&amp;quot; -type f);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check contents of an array in verbose style. (or any Bash variable)&lt;br /&gt;
 $ declare -p my_array&lt;br /&gt;
&lt;br /&gt;
Get count of array elements. (works even after you &amp;lt;code&amp;gt;unset&amp;lt;/code&amp;gt; an array element)&lt;br /&gt;
 $ echo &amp;quot;${#my_array[@]}&amp;quot;  # note the “#”&lt;br /&gt;
&lt;br /&gt;
Get array indices (each array element as a word; useful for &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loops)&lt;br /&gt;
 $ echo &amp;quot;${!my_array[@]}&amp;quot;  # note the “!”&lt;br /&gt;
&lt;br /&gt;
View a particular element of an array by index (Note: zero-indexed)&lt;br /&gt;
 $ printf &amp;quot;%s\n&amp;quot; &amp;quot;${my_array[1]}&amp;quot;  # display second element&lt;br /&gt;
 $ echo &amp;quot;${my_array[1]}&amp;quot;           # mostly the same, but beware special escaped character cases&lt;br /&gt;
&lt;br /&gt;
View all elements of an array, printing one line per array element.&lt;br /&gt;
 $ printf &amp;quot;%s\n&amp;quot; &amp;quot;${my_array[@]}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Act on each array element sequentially in a &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
for i in &amp;quot;${!my_array[@]}&amp;quot;; do&lt;br /&gt;
  printf &amp;quot;%s\n&amp;quot; &amp;quot;Checking element ${i} of ${#my_array[@]}.&amp;quot;;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove a particular array element by index.&lt;br /&gt;
 $ unset my_array[1]  # remove second element.&lt;br /&gt;
&lt;br /&gt;
Declare an associative array. (i.e. an array that uses strings as indices)&lt;br /&gt;
 $ declare -A myaa  #みゃあ&lt;br /&gt;
&lt;br /&gt;
Add an element to an associative array. (various styles)&lt;br /&gt;
 $ myaa[&amp;quot;september&amp;quot;]=&amp;quot;7&amp;quot;;&lt;br /&gt;
 $ myaa[&amp;quot;october&amp;quot;]=8;&lt;br /&gt;
 $ my_month=&amp;quot;december&amp;quot;; my_var=&amp;quot;10&amp;quot;; myaa[&amp;quot;${my_month}&amp;quot;]=&amp;quot;${my_var}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Check contents of an associative array (same as for any Bash array)&lt;br /&gt;
 $ declare -p myaa&lt;br /&gt;
 $ declare -p my_array myaa  # check two variables at the same time&lt;br /&gt;
&lt;br /&gt;
==== Iteration statements ====&lt;br /&gt;
Typical &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop that checks &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; first then performs &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; until &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while condition; do&lt;br /&gt;
  body;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emulate a &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop {{bkc|[[2025-10-11]]: Not compatible with &amp;lt;code&amp;gt;set -e&amp;lt;/code&amp;gt; error-handling which is supposed to end Bash script execution if any line fails. }} that initially performs &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; at least once before checking &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt;. Repeats &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; until &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;so_20140626_bash-do-while&amp;quot;&amp;gt;[https://stackoverflow.com/users/1899640/that-other-guy that other guy].  ([[2014-06-26]]).  “[https://stackoverflow.com/a/24421013 Is there a do-while loop in bash?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2025-10-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while&lt;br /&gt;
  body;&lt;br /&gt;
  condition;&lt;br /&gt;
do true; done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emulate a &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop with &amp;lt;code&amp;gt;set -e&amp;lt;/code&amp;gt; error-handling support:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while true; do&lt;br /&gt;
  body;&lt;br /&gt;
  condition || break;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[bc]] ===&lt;br /&gt;
Evaluate math expressions&lt;br /&gt;
 $ echo &amp;quot;scale=12; 1 / 1.61803398875&amp;quot; | bc -l  # division with 12 decimal places&lt;br /&gt;
 .618033988749&lt;br /&gt;
 $ echo &amp;quot;scale=6; l(2.718281)&amp;quot; | bc -l  # logarithm with only 6 decimal places&lt;br /&gt;
 .999999&lt;br /&gt;
&lt;br /&gt;
=== brew ===&lt;br /&gt;
[[Homebrew (package manager)|Homebrew]] is a package manager for [[macOS]].&lt;br /&gt;
&lt;br /&gt;
Install via script and [[curl]] (simple, but sketchy method available at https://brew.sh ):&lt;br /&gt;
 $ /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Update packages&lt;br /&gt;
 $ brew update&lt;br /&gt;
&lt;br /&gt;
Get info on a package&lt;br /&gt;
 $ brew info coreutils&lt;br /&gt;
&lt;br /&gt;
Install a package&lt;br /&gt;
 $ brew install coreutils&lt;br /&gt;
&lt;br /&gt;
Test package commands&lt;br /&gt;
 $ gdate -Is  # Equivalent to Debian 12 `$ date -Is`.&lt;br /&gt;
 2024-10-08T20:03:18+00:00&lt;br /&gt;
&lt;br /&gt;
=== calibredb ===&lt;br /&gt;
Command-line interface for [[ebook]] manager [[Calibre]]&lt;br /&gt;
&lt;br /&gt;
List all books in &amp;lt;code&amp;gt;author; title&amp;lt;/code&amp;gt; format with [[jq]].&lt;br /&gt;
 $ calibredb list --for-machine | jq -r &#039;.[] | &amp;quot;\(.authors); \(.title)&amp;quot; &#039; | sort&lt;br /&gt;
&lt;br /&gt;
=== cat ===&lt;br /&gt;
Concatenate file.&lt;br /&gt;
 $ cat file1.txt file2.txt&lt;br /&gt;
&lt;br /&gt;
Print contents of &amp;lt;code&amp;gt;file1.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ cat file.txt&lt;br /&gt;
&lt;br /&gt;
=== cd ===&lt;br /&gt;
Change working directory to home directory.&lt;br /&gt;
 $ cd ~/&lt;br /&gt;
&lt;br /&gt;
Change working directory to parent directory.&lt;br /&gt;
 $ cd ../&lt;br /&gt;
&lt;br /&gt;
Change working directory to &amp;lt;code&amp;gt;~/Documents&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ cd ~/Documents&lt;br /&gt;
&lt;br /&gt;
=== chmod ===&lt;br /&gt;
References:&lt;br /&gt;
* https://www.pluralsight.com/blog/it-ops/linux-file-permissions&lt;br /&gt;
* https://linuxconfig.org/chmod&lt;br /&gt;
&lt;br /&gt;
Remove read, write, and execute permissions for &#039;&#039;others&#039;&#039; to a file or directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chmod o-rwx foo&lt;br /&gt;
&lt;br /&gt;
Add read and execute permissions for &#039;&#039;group&#039;&#039; to a file or directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chmod g+rx foo&lt;br /&gt;
&lt;br /&gt;
Make all &#039;&#039;directories&#039;&#039; openable (i.e. executable) by &#039;&#039;user&#039;&#039; starting at a directory named &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # find ./bar -type d -exec chmod u+x \;&lt;br /&gt;
&lt;br /&gt;
Make all &#039;&#039;files&#039;&#039; non-executable by everyone within a directory named &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # find ./bar -type f -exec chmod ugo-x \;&lt;br /&gt;
 # find ./bar -type f -exec chmod -x \;&lt;br /&gt;
&lt;br /&gt;
Make a file named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; executable for &#039;&#039;user&#039;&#039;, &#039;&#039;group&#039;&#039;, and &#039;&#039;others&#039;&#039; (i.e. everyone).&lt;br /&gt;
 # chown +x foo&lt;br /&gt;
&lt;br /&gt;
=== choom ===&lt;br /&gt;
Get OOM score for process with PID &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ choom --pid 1&lt;br /&gt;
&lt;br /&gt;
List the bottom 50 processes in the OOM priority list (during low memory, the bottom is killed first).&lt;br /&gt;
 $ printf &amp;quot;pid,ooms,name\n&amp;quot;; while read -r line; do pid=&amp;quot;$(echo &amp;quot;$line&amp;quot; | cut -d&#039; &#039; -f2)&amp;quot;; name=&amp;quot;$(echo &amp;quot;$line&amp;quot; | cut -d&#039; &#039; -f11-)&amp;quot;; ooms=&amp;quot;$(choom -p &amp;quot;$pid&amp;quot; | grep -Eo &amp;quot;[0-9]+$&amp;quot; | head -n1)&amp;quot;; printf &amp;quot;%9d,%4d,%s\n&amp;quot; &amp;quot;$pid&amp;quot; &amp;quot;$ooms&amp;quot; &amp;quot;$name&amp;quot;; done &amp;lt; &amp;lt;(ps aux | tr -s &#039; &#039; | tail -n+2) | sort -k2 | tail -n50&lt;br /&gt;
&lt;br /&gt;
=== chown ===&lt;br /&gt;
Change ownership of a file or directory named &amp;lt;code&amp;gt;baz&amp;lt;/code&amp;gt; to &#039;&#039;user&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt; and &#039;&#039;group&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chown debuser:debuser baz&lt;br /&gt;
&lt;br /&gt;
Change ownership of all files and directories contained within the directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; to &#039;&#039;user&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt; and &#039;&#039;group&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
 root@h: chown -R debuser:debuser foo&lt;br /&gt;
&lt;br /&gt;
=== [[chrony]] ===&lt;br /&gt;
The following commands assume the package [[chrony]] is installed.&lt;br /&gt;
&lt;br /&gt;
Get a list of NTP refclocks being used to adjust local time:&lt;br /&gt;
 $ chronyc sources&lt;br /&gt;
&lt;br /&gt;
Get current machine&#039;s statistics (e.g. get Frequency or how slow or fast local clock is)&lt;br /&gt;
 $ chronyc tracking&lt;br /&gt;
&lt;br /&gt;
=== clear ===&lt;br /&gt;
Clear terminal screen.&lt;br /&gt;
&lt;br /&gt;
 $ clear&lt;br /&gt;
&lt;br /&gt;
=== convert ===&lt;br /&gt;
&#039;&#039;See [[#ImageMagick]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== column ===&lt;br /&gt;
&amp;lt;code&amp;gt;column&amp;lt;/code&amp;gt; may be used to print lines of standard input into columns (to reduce the total number of lines) or to create tables with custom delimiters (same number of lines). Part of the &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; package (version &amp;lt;code&amp;gt;2.39.3&amp;lt;/code&amp;gt;) in [[Debian]] systems.&lt;br /&gt;
&lt;br /&gt;
Reduce number of rows.&lt;br /&gt;
 $ seq 1 10                 # example multi-line input&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
 $ seq 1 10 | column;       # minimze rows&lt;br /&gt;
 1	2	3	4	5	6	7	8	9	10&lt;br /&gt;
&lt;br /&gt;
 $ seq 1 10 | column -c 30  # reduce rows to width of 30 characters&lt;br /&gt;
 1	5	9&lt;br /&gt;
 2	6	10&lt;br /&gt;
 3	7&lt;br /&gt;
 4	8&lt;br /&gt;
&lt;br /&gt;
Display text table with separator &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ printf &amp;quot;foo/bar/baz\nbi/boo/tax\n&amp;quot;&lt;br /&gt;
 foo/bar/baz&lt;br /&gt;
 bi/boo/tax&lt;br /&gt;
 $ printf &amp;quot;foo/bar/baz\nbi/boo/tax\n&amp;quot; | column -t -s&#039;/&#039;&lt;br /&gt;
 foo  bar  baz&lt;br /&gt;
 bi   boo  tax&lt;br /&gt;
&lt;br /&gt;
Display &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; contents (which uses &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; as separator)&lt;br /&gt;
 $ sudo cat /etc/passwd | column -t -s &#039;:&#039;&lt;br /&gt;
&lt;br /&gt;
=== cp ===&lt;br /&gt;
Copy a file or directory.&lt;br /&gt;
&lt;br /&gt;
Copy a file.&lt;br /&gt;
 $ cp some_file some_file_copy&lt;br /&gt;
&lt;br /&gt;
Copy a directory and its contents.&lt;br /&gt;
 $ cp -r some_dir some_dir_copy&lt;br /&gt;
&lt;br /&gt;
=== [[cron|crontab]] ===&lt;br /&gt;
Edit crontab.&lt;br /&gt;
 $ crontab -e&lt;br /&gt;
&lt;br /&gt;
Print crontab to stdout:&lt;br /&gt;
 $ crontab -l&lt;br /&gt;
&lt;br /&gt;
Erase crontab (DON&#039;T DO UNLESS YOU HAVE A BACKUP OF THE CRONTAB):&lt;br /&gt;
 $ crontab -r&lt;br /&gt;
&lt;br /&gt;
Print to stdout the &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; of user &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; via user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; ([https://askubuntu.com/questions/189189/how-to-run-crontab-as-userwww-data ref]):&lt;br /&gt;
 $ sudo su - www-data -s /bin/bash -c &amp;quot;crontab -l&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== cryptsetup ===&lt;br /&gt;
==== Get details on a volume encrypted with LUKS ====&lt;br /&gt;
&lt;br /&gt;
 $ cryptsetup status /dev/mapper/$some_volume&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;$some_volume&amp;lt;/code&amp;gt; is the name of an encrypted volume. [https://unix.stackexchange.com/questions/260533/how-to-determine-what-encryption-is-being-used-a-luks-partition Reference].&lt;br /&gt;
&lt;br /&gt;
=== cut ===&lt;br /&gt;
Select second field in comma-delimited CSV file &amp;lt;code&amp;gt;file.csv&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ cut -d&#039;,&#039; -f2&lt;br /&gt;
&lt;br /&gt;
Select second field in tab-delimited TSV file &amp;lt;code&amp;gt;file.tsv&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ cut -d$&#039;\t&#039; -f2 file.tsv&lt;br /&gt;
&lt;br /&gt;
Select fields 3 through 7 in comma-delimited CSV file.&lt;br /&gt;
 $ cut -d&#039;,&#039; -f3-7 file.csv&lt;br /&gt;
&lt;br /&gt;
=== [[date]] ===&lt;br /&gt;
&#039;&#039;Note: Assumes GNU date.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Print today&#039;s calendar date in [[ISO 8601]] format&lt;br /&gt;
 $ date -I&lt;br /&gt;
 $ date -Id&lt;br /&gt;
 $ date +%Y-%m-%d&lt;br /&gt;
&lt;br /&gt;
Print current date and time in [[ISO 8601]] format to second resolution.&lt;br /&gt;
 $ date -Is                    # e.g. 2024-02-01T05:44:58+00:00&lt;br /&gt;
 $ date +%Y-%m-%dT%H:%M:%S%:z  # e.g. 2024-02-01T05:44:58+00:00&lt;br /&gt;
&lt;br /&gt;
Print current date and time in [[ISO 8601]] format to second resolution with minimal separators. (e.g. for file name use)&lt;br /&gt;
 $ date +%Y%m%dT%H%M%S%z  # e.g. 20240201T054458+00&lt;br /&gt;
&lt;br /&gt;
Print current UNIX epoch. (i.e. [[POSIX]] seconds since [[1970-01-01]].).&lt;br /&gt;
 $ date +%s&lt;br /&gt;
&lt;br /&gt;
Print actual seconds since [[1970-01-01]]. (requires [https://packages.debian.org/trixie/tzdata-legacy tzdata-legacy])&amp;lt;ref name=&amp;quot;ken_20160303_right-tz&amp;quot;&amp;gt;[https://kenta.blogspot.com/ Ken].  ([[2016-03-03]]).  “[https://kenta.blogspot.com/2016/03/sqfzcxay-understanding-right-time-zone.html [sqfzcxay] Understanding the &amp;quot;right&amp;quot; time zone database]”.  &#039;&#039;[[blogspot.com]]&#039;&#039;.  Accessed [[2026-04-26]].  &amp;lt;/ref&amp;gt;{{bkc|[[2026-04-27]]: Getting the &amp;lt;code&amp;gt;/usr/share/zoneinfo/right/UTC&amp;lt;/code&amp;gt; may require running &amp;lt;code&amp;gt;$ sudo apt install tzdata-legacy&amp;lt;/code&amp;gt; on a [[Debian]]-based system. }}&lt;br /&gt;
 $ TZ=right/UTC date --date=&amp;quot;$(date --iso-8601=s)&amp;quot; +%s;&lt;br /&gt;
&lt;br /&gt;
Print all calendar dates for the next 365 days. (e.g. &amp;lt;code&amp;gt;2024-02-01\n2024-02-02\n2024-02-03\n…&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
today=&amp;quot;$(date +%s)&amp;quot;; n=0; for dia in {0..365}; do&lt;br /&gt;
  day=&amp;quot;$((today + dia * (24*60*60) ))&amp;quot;;&lt;br /&gt;
  date --date=&amp;quot;@$day&amp;quot; &amp;quot;+%Y-%m-%d&amp;quot;;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get date from hexadecimal Unix epoch.&lt;br /&gt;
 $ date -Is --date=&amp;quot;@$(printf &amp;quot;%u&amp;quot; &amp;quot;0x68ed790a&amp;quot;)&amp;quot;&lt;br /&gt;
 2025-10-13T22:11:22+00:00&lt;br /&gt;
 $ date -Is --date=&amp;quot;@$(printf &amp;quot;%u&amp;quot; &amp;quot;0xFFFFFFFF&amp;quot;)&amp;quot;    #  See [[Time formatting and storage bugs#Year_2106|Time formatting and storage bugs]]&lt;br /&gt;
 2106-02-07T06:28:15+00:00&lt;br /&gt;
&lt;br /&gt;
=== [[dd]] ===&lt;br /&gt;
Read every block of a block device &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt; in 4 KiB increments.&lt;br /&gt;
 $ sudo dd if=/dev/sdb of=/dev/random bs=4k&lt;br /&gt;
&lt;br /&gt;
Create a 10 MiB file containing [[pseudorandom noise]] using 2 MiB of [[Random access memory|RAM]] at a time.&amp;lt;ref name=&amp;quot;su_20120906_ddrandfile&amp;quot;&amp;gt;[[u1686_grawity]]. ([[2012-09-06]]). “[https://superuser.com/a/470957/1142336 How do I create a 1GB random file in Linux?]”. &#039;&#039;superuser.com&#039;&#039;. Accessed [[2023-07-01]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ dd if=/dev/urandom of=sample.txt bs=2M count=5&lt;br /&gt;
&lt;br /&gt;
=== [[df]] ===&lt;br /&gt;
Display free disk space.&lt;br /&gt;
 $ df&lt;br /&gt;
&lt;br /&gt;
Display free disk space in bytes.&lt;br /&gt;
 $ df -B1&lt;br /&gt;
&lt;br /&gt;
Display free disk space in gigabytes (1024&amp;lt;rsup&amp;gt;3&amp;lt;/rsup&amp;gt; bytes)&lt;br /&gt;
 $ df -BG&lt;br /&gt;
 $ df -BGiB&lt;br /&gt;
&lt;br /&gt;
Display free disk space in gibibytes (1000&amp;lt;rsup&amp;gt;3&amp;lt;/rsup&amp;gt; bytes)&lt;br /&gt;
 $ df -BGB&lt;br /&gt;
 $ df -B1000000000&lt;br /&gt;
&lt;br /&gt;
=== [[du]] ===&lt;br /&gt;
List disk usage of ALL files and directories within working directory in bytes.&lt;br /&gt;
 $ du -b .&lt;br /&gt;
 $ du -b -- .&lt;br /&gt;
&lt;br /&gt;
List disk usage (i.e. size) of files and directories within working directory. (i.e. depth 1)&lt;br /&gt;
 $ du -bd1 -- .&lt;br /&gt;
&lt;br /&gt;
List disk usage of &amp;lt;code&amp;gt;*.txt&amp;lt;/code&amp;gt; files (and directories) fitting pattern &amp;lt;code&amp;gt;*.txt&amp;lt;/code&amp;gt; within working directory.{{bkc|[[2025-10-21]]: Note: Using the &amp;lt;code&amp;gt;find -printf &#039;%s\t%p\n&#039;&amp;lt;/code&amp;gt; pattern is much faster than calling &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt; repeatedly in a &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop that is fed paths from &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;. It&#039;s even faster than &amp;lt;code&amp;gt;find -exec du -b &#039;{}&#039; \+&amp;lt;/code&amp;gt; trick. }}&lt;br /&gt;
 $ du -bd1 -- *.txt&lt;br /&gt;
 $ find ./ -maxdepth 1 -name &amp;quot;*.txt&amp;quot; -printf &#039;%s\t%p\n&#039;  # faster than &#039;du&#039;&lt;br /&gt;
&lt;br /&gt;
=== dig ===&lt;br /&gt;
Get public IP address&amp;lt;ref name=&amp;quot;cyberciti_20230311_getpublicip&amp;quot;&amp;gt;[[Vivek Gite|Gite, Vivek]]. ([[2023-03-11]]). “[https://www.cyberciti.biz/faq/how-to-find-my-public-ip-address-from-command-line-on-a-linux/ How To Find My Public IP Address From Linux CLI]”. &#039;&#039;cyberciti.biz&#039;&#039;. Accessed [[2023-05-08]].&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ dig +short myip.opendns.com @resolver1.opendns.com&lt;br /&gt;
 $ dig +short txt ch whoami.cloudflare @1.0.0.1&lt;br /&gt;
 $ dig TXT +short o-o.myaddr.l.google.com @ns1.google.com&lt;br /&gt;
&lt;br /&gt;
=== [[dpkg]] ===&lt;br /&gt;
List available [[kernel]]s.&lt;br /&gt;
 $ dpkg --list | grep -- linux-image&lt;br /&gt;
&lt;br /&gt;
Check which package owns a file.&lt;br /&gt;
 $ dpkg -S /etc/systemd/logind.conf  # by file path&lt;br /&gt;
 $ dpkg -S &amp;quot;$(which zdump)&amp;quot;          # by command name, e.g. `zdump`&lt;br /&gt;
&lt;br /&gt;
=== dpkg-reconfigure ===&lt;br /&gt;
Add a [[locale]] in [[Debian]]-based systems that use [[dpkg]].&lt;br /&gt;
 $ sudo dpkg-reconfigure locales&lt;br /&gt;
: Navigate menus to select the local. Recommended: locales ending in &amp;lt;code&amp;gt;.UTF-8&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;C.UTF-8&amp;lt;/code&amp;gt; (compatibility), &amp;lt;code&amp;gt;en_US.UTF-8&amp;lt;/code&amp;gt; ([[English language|English]] of United States), &amp;lt;code&amp;gt;zh_CN.UTF-8&amp;lt;/code&amp;gt; ([[Chinese language|Chinese]] of mainland China), &amp;lt;code&amp;gt;id_ID.UTF-8&amp;lt;/code&amp;gt; ([[Indonesian language|Indonesian]] of [[Indonesia]]), &amp;lt;code&amp;gt;ja_JP.UTF-8&amp;lt;/code&amp;gt; ([[Japanese language|Japanese]] of [[Japan]]), &amp;lt;code&amp;gt;ko_KR.UTF-8&amp;lt;/code&amp;gt; ([[Korean language|Korean]] of [[South Korea]]).&lt;br /&gt;
&lt;br /&gt;
=== [[dstat]] ===&lt;br /&gt;
&#039;&#039;Consider using [[dool]] ([https://github.com/scottchiefbaker/dool GitHub])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show system stats, averaged every 60 seconds per line&lt;br /&gt;
 dstat --time --load --proc --cpu --mem --disk --io --net --sys --vm 60&lt;br /&gt;
&lt;br /&gt;
=== [[dool]] ===&lt;br /&gt;
&#039;&#039;A [[python3]] fork of [[dstat]].&#039;&#039;&amp;lt;ref name=&amp;quot;tecmint_20240422_dool&amp;quot;&amp;gt;[[Aaron Kili]].  ([[2024-04-22]]).  “[https://www.tecmint.com/dool-monitor-linux-server-performance-process-memory-network/ Dool – All-in-One Linux Server Performance Monitoring Tool]”.  [[tecmint.com]].  Accessed [[2025-10-03]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show system stats, averaged every 60 seconds per line&lt;br /&gt;
 dool --time --load --proc --cpu --mem --disk --io --net --bytes --sys --vm 60&lt;br /&gt;
&lt;br /&gt;
=== [[emacs]] ===&lt;br /&gt;
&#039;&#039;See [[Emacs notes]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== [[exiftool]] ===&lt;br /&gt;
&#039;&#039;Note: Consider using [[BK-2020-03]]&amp;lt;code&amp;gt;bkphotorights&amp;lt;/code&amp;gt; script to add XMP data with Creative Commons attribution data.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List all EXIF data, including XMP tags.&lt;br /&gt;
 $ exiftool file.jpg&lt;br /&gt;
&lt;br /&gt;
Remove all EXIF data from photograph files&lt;br /&gt;
 $ exiftool -all= file.jpg&lt;br /&gt;
&lt;br /&gt;
Remove only GPS EXIF data from JPG (see https://exiftool.org/forum/index.php?topic=6037.0 )&lt;br /&gt;
 $ exiftool -gps:all= file.jpg&lt;br /&gt;
&lt;br /&gt;
remove only GPS EXIF data from JPG If GPS is in XMP:&lt;br /&gt;
 $ exiftool &amp;quot;-gps*=&amp;quot; file.jpg&lt;br /&gt;
&lt;br /&gt;
Rotate image via EXIF tag&amp;lt;ref name=&amp;quot;exiftool_20161218_rotate&amp;quot;&amp;gt;Alan Clifford.  ([[2016-12-18]]).  “[https://exiftool.org/forum/index.php?PHPSESSID=57842c30da5ac949b63ec7325448da35&amp;amp;msg=40314 Writing to the EXIF:Orientation Tag]”.  &#039;&#039;[[exiftool.org]]&#039;&#039;.  Accessed [[2024-07-13]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ exiftool -Orientation#=1 file.jpg   # Horizontal (normal)&lt;br /&gt;
 $ exiftool -Orientation#=2 file.jpg   # Mirror horizontal&lt;br /&gt;
 $ exiftool -Orientation#=3 file.jpg   # Rotate 180&lt;br /&gt;
 $ exiftool -Orientation#=4 file.jpg   # Mirror vertical&lt;br /&gt;
 $ exiftool -Orientation#=5 file.jpg   # Mirror horizontal and rotate 270 CW&lt;br /&gt;
 $ exiftool -Orientation#=6 file.jpg   # Rotate 90 CW&lt;br /&gt;
 $ exiftool -Orientation#=7 file.jpg   # Mirror horizontal and rotate 90 CW&lt;br /&gt;
 $ exiftool -Orientation#=8 file.jpg   # Rotate 270 CW&lt;br /&gt;
&lt;br /&gt;
=== [[f3]] ===&lt;br /&gt;
&#039;&#039;&#039;Fight Fake Flash&#039;&#039;&#039; (F3) is a utility for detecting fake flash storage drives.&amp;lt;ref name=&amp;quot;debian_2023_fightfakeflash&amp;quot;&amp;gt;“[https://tracker.debian.org/pkg/f3 f3 - test real flash memory capacity]”.  ([[2023]]).  &#039;&#039;[[tracker.debian.org]]&#039;&#039;.  Accessed [[2024-11-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install&lt;br /&gt;
 $ sudo apt install f3&lt;br /&gt;
&lt;br /&gt;
Run on drive mounted at &amp;lt;code&amp;gt;/media/baltakatei/myusb&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ f3write /media/baltakatei/myusb&lt;br /&gt;
&lt;br /&gt;
Verify&lt;br /&gt;
 $ f3read /media/baltakatei/myusb&lt;br /&gt;
&lt;br /&gt;
=== [[ffmpeg]] ===&lt;br /&gt;
Encode [[h264]] video for compatibility with [[Firefox]].&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -pix_fmt yuv420p output.mp4&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 18 -pix_fmt yuv420p output.mp4  # higher quality&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 26 -pix_fmt yuv420p output.mp4  # smaller size&lt;br /&gt;
&lt;br /&gt;
Extract clip with time codes.&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -avoid_negative_ts 1 output.mp4&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -c:v libx264 -preset slow -crf 18 -c:a aac -b:a 128k -avoid_negative_ts 1 output.mp4      &lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 60 -t 120 -avoid_negative_ts 1 output.mp4&lt;br /&gt;
&lt;br /&gt;
Extract frame of video to save as [[PNG]] file&lt;br /&gt;
 $ ffmpeg -i input.webm -ss 00:00:00 -frames:v 1 output.png  # first frame&lt;br /&gt;
 $ ffmpeg -i input.webm -ss 00:00:10 -frames:v 1 output.png  # a frame from 10 seconds in&lt;br /&gt;
&lt;br /&gt;
Extract album artwork from one of the original audiobook mp3 files. (&#039;&#039;see [[Audiobook transcoding notes]].&#039;&#039;; example: [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/738ad68b7df736f438f74dfeffd56e400fb2c1bf/user/mp3s_to_mkv.sh mp3s_to_mkv.sh])&lt;br /&gt;
 $ ffmpeg -i How\ To\ -\ Track\ 001.mp3 -an -vcodec copy album_artwork.png&lt;br /&gt;
&lt;br /&gt;
Convert &amp;lt;code&amp;gt;*.JPG&amp;lt;/code&amp;gt; files into time lapse at 60 frames per second (&amp;lt;code&amp;gt;-r 60&amp;lt;/code&amp;gt;) with &amp;lt;code&amp;gt;yuvj420p&amp;lt;/code&amp;gt; colors to reduce banding.&amp;lt;ref name=&amp;quot;yc_20190529_carmack-ffmpeg-color&amp;quot;&amp;gt;[[John Carmack]].  ([[2019-05-29]]).  “[https://news.ycombinator.com/item?id=20036710 Adventures with ffmpeg and color ranges]”.  &#039;&#039;[[ycombinator.com]]&#039;&#039;.  Accessed [[2026-01-22]].  “&amp;lt;code&amp;gt;ffmpeg -i source.mp4 -c:v libx265 -pix_fmt yuvj420p dest.mp4&amp;lt;/code&amp;gt;”.  &amp;lt;/ref&amp;gt;{{bkc|[[2026-01-22]]: Use &amp;lt;code&amp;gt;$ ffprobe DSC00123.JPG&amp;lt;/code&amp;gt; to find the color space of the input [[JPEG]] file. For example: &amp;lt;code&amp;gt;Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown)&amp;lt;/code&amp;gt; means &amp;lt;code&amp;gt;-pix_fmt yuvj422p&amp;lt;/code&amp;gt; should be the option provided to &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
 $ ffmpeg -nostdin -pattern_type glob -i &#039;*.JPG&#039; -c:v libx264 -r 60 -preset veryslow -crf 18 -pix_fmt yuvj420p output4.mp4&lt;br /&gt;
 $ ffmpeg -nostdin -pattern_type glob -i &#039;*.JPG&#039; -c:v libx264 -r 60 -preset veryslow -crf 26 -pix_fmt yuvj420p output4.mp4&lt;br /&gt;
&lt;br /&gt;
Export [[SNES]] [[SPC]] audio.&amp;lt;ref name=&amp;quot;&amp;quot;&amp;gt;[[Kaz Wolfe]].  ([[2017-03-28]]).  “[https://askubuntu.com/a/897694/ SPC to WAV command-line]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2026-04-13]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffmpeg -i track1.spc track1.flac&lt;br /&gt;
&lt;br /&gt;
==== Quality of life ====&lt;br /&gt;
Hide verbose configuration banner. (e.g. &amp;lt;code&amp;gt;built with gcc 11… configuration: --prefix=/usr…&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ ffmpeg -hide_banner&lt;br /&gt;
&lt;br /&gt;
==== Encode video ====&lt;br /&gt;
Encode video using [[VP9]] codec with 2 passes and tile-based multithreading.&amp;lt;ref name=&amp;quot;ffmpeg_2024_vp9-encoding&amp;quot;&amp;gt;“[https://trac.ffmpeg.org/wiki/Encode/VP9 FFmpeg and VP9 Encoding Guide]”.  ([[2024-01]]).  &#039;&#039;[[ffmpeg.org]]&#039;&#039;.  Accessed [[2024-05-23]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
fin=input.mkv;&lt;br /&gt;
ffmpeg -nostdin -i &amp;quot;$fin&amp;quot; -c:v libvpx-vp9 -row-mt 1 -b:v 0 -crf 18 -pass 1 -f null /dev/null &amp;amp;&amp;amp; \&lt;br /&gt;
ffmpeg -nostdin -i &amp;quot;$fin&amp;quot; -c:v libvpx-vp9 -row-mt 1 -b:v 0 -crf 18 -pass 2 &amp;quot;${fin%.mkv}.webm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specify a constant rate factor (CRF)&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 18 -c:a copy output.mp4&lt;br /&gt;
&lt;br /&gt;
Clip a video at CRF 18 and encode audio to [[OPUS]].&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -c:v libx264 -preset slow -crf 18 -c:a libopus -b:a 128k -avoid_negative_ts 1 output.mp4&lt;br /&gt;
&lt;br /&gt;
Process multiple videos in a [[Bash]] while loop. (Avoid [[stdin]] conflict with &amp;lt;code&amp;gt;-nostdin&amp;lt;/code&amp;gt; option)&amp;lt;ref name=&amp;quot;bashfaq_20221030_089stdin&amp;quot;&amp;gt;“[https://mywiki.wooledge.org/BashFAQ/089 BashFAQ/089 I&#039;m reading a file line by line and running ssh or ffmpeg, only the first line gets processed!]”.  ([[2022-10-30]]).  &#039;&#039;mywiki.wooledge.org&#039;&#039;.  Accessed [[2023-07-29]].  [https://web.archive.org/web/20230723080923/https://mywiki.wooledge.org/BashFAQ/089 Archived] from the original on [[2023-07-23]].  &amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;se_20220922_bashvarffmpeg&amp;quot;&amp;gt;[[roaima]].  ([[2022-09-22]]).  “[https://unix.stackexchange.com/a/718279 Bash variable truncated when passed into ffmpeg]”.  &#039;&#039;[[unix.stackexchange.com]]&#039;&#039;.  Accessed [[2023-07-29]].  [https://web.archive.org/web/20230729161626/https://unix.stackexchange.com/questions/718277/bash-variable-truncated-when-passed-into-ffmpeg/718279#718279 Archived] from the original on [[2023-07-29]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 while IFS= read -r file; do&lt;br /&gt;
   ffmpeg -nostdin -i &amp;quot;$file&amp;quot; -c:v libx264 -c:a aac &amp;quot;${file%.avi}&amp;quot;.mkv&lt;br /&gt;
 done &amp;lt; &amp;lt;(find . -name &#039;*.avi&#039;)&lt;br /&gt;
&lt;br /&gt;
=====Apply video filters=====&lt;br /&gt;
Create a 1-minute 60 fps time lapse video from 3 hours of 30 fps input.&lt;br /&gt;
: From videos, create a file list then run &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt; on the list.&lt;br /&gt;
 $ for f in ./*.MP4; do echo &amp;quot;file &#039;$PWD/$f&#039;&amp;quot; &amp;gt;&amp;gt; filelist.txt; done&lt;br /&gt;
&lt;br /&gt;
: Create the 60 fps (&amp;lt;code&amp;gt;-r 60&amp;lt;/code&amp;gt;) timelapse of 3 hours reduced into 1 minute. The &amp;lt;code&amp;gt;setpts&amp;lt;/code&amp;gt; factor is equal to &amp;lt;code&amp;gt;(duration out)/(duration in)*(fps out)/(fps in)&amp;lt;/code&amp;gt;. So, &amp;lt;code&amp;gt;(1*60)/(3*60*60)*(60/30) ≈ 0.01111&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ ffmpeg -nostdin -f concat -safe 0 -i filelist.txt -vf &amp;quot;setpts=0.01111*PTS&amp;quot; -an -r 60 output_timelapse.mp4&lt;br /&gt;
&lt;br /&gt;
Apply a temporal median filter across a radius of 10 frames.&amp;lt;ref name=&amp;quot;ffmpeg_2024_filter-tmedian&amp;quot;&amp;gt;“[https://ffmpeg.org/ffmpeg-filters.html#tmedian 11.259 tmedian]”.  (n.d.).  &#039;&#039;[[ffmpeg.org]]&#039;&#039;.  Accessed [[2024-09-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffmpeg -f -i input.mp4 -vf &amp;quot;tmedian=radius=10:planes=15:percentile=0.5&amp;quot; -an output.mp4&lt;br /&gt;
&lt;br /&gt;
Apply both a time lapse and a temporal median filter for several &amp;lt;code&amp;gt;.[[MP4]]&amp;lt;/code&amp;gt; files.&lt;br /&gt;
 $ for f in ./*.MP4; do echo &amp;quot;file &#039;$PWD/$f&#039;&amp;quot; &amp;gt;&amp;gt; filelist.txt; done;&lt;br /&gt;
 $ ffmpeg -f concat -safe 0 -i filelist.txt -vf &amp;quot;setpts=0.01111*PTS, tmedian=radius=10:planes=15:percentile=0.5&amp;quot; -an -r 60 -crf 30 output_timelapse_crf30_median.mp4&lt;br /&gt;
&lt;br /&gt;
==== Split a video file into roughly equal segments ====&lt;br /&gt;
Reference: https://unix.stackexchange.com/a/212518/411854&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c copy -map 0 -segment_time 00:20:00 -f segment -reset_timestamps 1 output%03d.mp4&lt;br /&gt;
&lt;br /&gt;
==== Combine video files into a single file ====&lt;br /&gt;
Reference: https://trac.ffmpeg.org/wiki/Concatenate&lt;br /&gt;
&lt;br /&gt;
 # this is a comment of the file named mylist.txt&lt;br /&gt;
 file &#039;/path/to/file1.wav&#039;&lt;br /&gt;
 file &#039;/path/to/file2.wav&#039;&lt;br /&gt;
 file &#039;/path/to/file3.wav&#039;&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.wav&lt;br /&gt;
&lt;br /&gt;
==== Add subtitles to a video file ====&lt;br /&gt;
Add multiple [[ASS]] subtitle files to a single [[MP4]] video file.&amp;lt;ref&amp;gt;{{bk}}: [[2024-03-01]]: See [[ffmpeg]]ʼs [https://trac.ffmpeg.org/wiki/Map &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt;] option. Order is important.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i input.mp4 \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.en-US.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.es-US.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.id.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.ja.ass \&lt;br /&gt;
       -map 0:v -map 0:a \&lt;br /&gt;
       -map 1 -map 2 -map 3 -map 4 \&lt;br /&gt;
       -metadata:s:s:0 language=eng \&lt;br /&gt;
       -metadata:s:s:1 language=spa \&lt;br /&gt;
       -metadata:s:s:2 language=ind \&lt;br /&gt;
       -metadata:s:s:3 language=jpn \&lt;br /&gt;
       -c copy \&lt;br /&gt;
       -c:s ass output.mkv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[file]] ===&lt;br /&gt;
Classify file type.&lt;br /&gt;
&lt;br /&gt;
Classify the file &amp;lt;code&amp;gt;myfile.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ file myfile.txt&lt;br /&gt;
&lt;br /&gt;
Classify the executable &amp;lt;code&amp;gt;/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ file /bin/bash&lt;br /&gt;
 /bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2f77b36371c214e11670c7d9d92727e9a49f626b, for GNU/Linux 3.2.0, stripped&lt;br /&gt;
&lt;br /&gt;
=== [[ffprobe]] ===&lt;br /&gt;
Get audio duration in seconds as a decimal number.&amp;lt;ref name=&amp;quot;so_20110604_duration-audio-file&amp;quot;&amp;gt;[https://stackoverflow.com/users/200265/louise louise].  ([[2011-06-04]]).  “[https://stackoverflow.com/a/22243834/10850071 How to extract duration time from ffmpeg output?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-02-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot; -show_entries format=duration -v quiet -of csv=&amp;quot;p=0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
: Get audio duration in seconds of all &amp;lt;code&amp;gt;.flac&amp;lt;/code&amp;gt; files in the working directory with [[bc]].&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
dur=&amp;quot;0.0&amp;quot;; while read -r line; do&lt;br /&gt;
  line_dur=&amp;quot;$(ffprobe -i &amp;quot;$line&amp;quot; -show_entries format=duration -v quiet -of csv=&amp;quot;p=0&amp;quot;)&amp;quot;;&lt;br /&gt;
  dur=&amp;quot;$(echo &amp;quot;$dur + $line_dur&amp;quot; | bc -l)&amp;quot;;&lt;br /&gt;
done &amp;lt; &amp;lt;(find . -type f -name &amp;quot;*.flac&amp;quot;);&lt;br /&gt;
echo &amp;quot;$dur&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get bitrate in integer bytes.&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot;; -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 &lt;br /&gt;
&lt;br /&gt;
Get chapter times.&amp;lt;ref name=&amp;quot;se_20190425_ffmpeg-chapters&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/349887/nemo Nemo].  ([[2019-04-25]]).  “[https://unix.stackexchange.com/a/515371 Using ffmpeg to split an Audible audio-book into chapters?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-01-20]].  &amp;lt;/ref&amp;gt;&amp;lt;ref group=fn&amp;gt;{{bk}}: See &amp;lt;code&amp;gt;[[BK-2020-03]]:user/mw_get_audiobook_chapters.sh&amp;lt;/code&amp;gt;.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot; -print_format json -show_chapters -sexagesimal&lt;br /&gt;
&lt;br /&gt;
=== [[find]] ===&lt;br /&gt;
Outputs newline-delimited (default) list of paths of files or directories matching specified filters.&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; directory recursively.&lt;br /&gt;
 $ find /path/to/dir&lt;br /&gt;
&lt;br /&gt;
List all files in working directory recursively&lt;br /&gt;
 $ find . -type f&lt;br /&gt;
&lt;br /&gt;
List all directories in working directory recursively&lt;br /&gt;
 $ find . -type d&lt;br /&gt;
&lt;br /&gt;
Search &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; for files ending in &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.JPG&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ find $HOME/ -type f -iname &amp;quot;*.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get file sizes, via [[du]], of all files in the working directory recursively&lt;br /&gt;
 $ find . -type f -exec du -b &#039;{}&#039; \;&lt;br /&gt;
 $ find . -type f -exec du -b &#039;{}&#039; +;  # performs fewer calls to &#039;du&#039;&lt;br /&gt;
&lt;br /&gt;
: Get file sizes of all files in the working directory recursively &#039;&#039;without&#039;&#039; calling [[du]].&lt;br /&gt;
 $ find . -type f -printf &#039;%s\t%p\n&#039;  # newline-terminated&lt;br /&gt;
 $ find . -type f -printf &#039;%s\t%p\0&#039;  # null-terminated (for feeding to &#039;shuf -z&#039; or &#039;cut -z&#039;)&lt;br /&gt;
&lt;br /&gt;
List all files and directories within the working directory.&lt;br /&gt;
 $ find . -maxdepth 1&lt;br /&gt;
&lt;br /&gt;
List all files and directories precisely 4 subdirectories deep&lt;br /&gt;
 $ find . -mindepth 4 -maxdepth 4&lt;br /&gt;
&lt;br /&gt;
List all files in the working directory recursively, following symlinks up to a maximum depth of 10 subdirectories deep&lt;br /&gt;
 $ find -L . -maxdepth 10 -type f&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the working directory starting with a &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; (i.e. list all dotfiles and dotdirs)&lt;br /&gt;
 $ find . -name &amp;quot;.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the working directory starting with a &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ find . ! -name &amp;quot;.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
List all files in the working directory recursively except those ending in either &amp;lt;code&amp;gt;.ots&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ots.bak&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ find . -type f ! \( -name &amp;quot;*.ots&amp;quot; -or -name &amp;quot;*.ots.bak&amp;quot; \)&lt;br /&gt;
&lt;br /&gt;
Find files in the working directory of a minimum size. (e.g. greater than but not equal to 1 MiB)&lt;br /&gt;
 $ find . -type f -size +$((1024 * 1024))c  # calc MiB&lt;br /&gt;
 $ find . -type f -size +$((1024 ** 2))c    # calc MiB&lt;br /&gt;
 $ find . -type f -size +1048576c           # use bytes&lt;br /&gt;
 $ find . -type f -size +1M                 # do not use due to rounding issues&lt;br /&gt;
&lt;br /&gt;
Find files in the working directory of a maximum size. (e.g. less than but not equal to 1 MiB)&lt;br /&gt;
 $ find /path/to/dir -type f -size -1048576c  # use -1048576c instead of -1M due to rounding issues&lt;br /&gt;
&lt;br /&gt;
Find files in &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; older than a certain date (e.g. &amp;lt;code&amp;gt;2024-01-01&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ find /path/to/search -not -newermt 2024-01-01&lt;br /&gt;
&lt;br /&gt;
List files sorted by modification date&lt;br /&gt;
 $ find /path/to/directory -type f -printf &#039;%T@ %p\n&#039; | sort -n | cut -d&#039; &#039; -f2-&lt;br /&gt;
&lt;br /&gt;
List all &amp;lt;code&amp;gt;.json&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; that lack an accompanying &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt; file. (e.g. show &amp;lt;code&amp;gt;file.json&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt; does not exist.&lt;br /&gt;
 $ while read -r line; do if [[ ! -f &amp;quot;${line%.json}.txt&amp;quot; ]]; then declare -p line; fi; done &amp;lt; &amp;lt;(find /path/to/dir -type f -name &amp;quot;*.json&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Perform a command (e.g. &amp;lt;code&amp;gt;ots s&amp;lt;/code&amp;gt; on every file via null-terminated pipe to [[xargs]] in random order.&lt;br /&gt;
 $ find . -type f -print0 | shuf --zero-terminated | xargs --null ots s&lt;br /&gt;
&lt;br /&gt;
=== [[gcc]] ===&lt;br /&gt;
&#039;&#039;Available in Debian &amp;lt;code&amp;gt;build-essential&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
The GNU C Compiler&lt;br /&gt;
&lt;br /&gt;
Compile C-code specified in the command line.&amp;lt;ref name=&amp;quot;se_20141024_gccbashprocsub&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/14034/celada Celada].  ([[2014-10-24]]).  “[https://unix.stackexchange.com/a/164109/411854 Why does BASH process substitution not work with some commands?]”.  Accessed [[2023-07-14]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ gcc -x c &amp;lt;(echo &#039;int main(){return 0;}&#039;)&lt;br /&gt;
 $ echo &#039;int main(){return 0;}&#039; | gcc -x c -&lt;br /&gt;
 $ gcc -x c -o hello &amp;lt;(echo -e &amp;quot;#include &amp;lt;stdio.h&amp;gt;\n main()\n{\nprintf(\&amp;quot;hello, \&amp;quot;);\nprintf(\&amp;quot;world\&amp;quot;);\nprintf(\&amp;quot;\\\n\&amp;quot;);\n}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== [[git]] ===&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|git}} &lt;br /&gt;
&lt;br /&gt;
See recent checkout, commit, or other operations by commit reference. (e.g. to find a commit lost because it was on a detached HEAD).  &lt;br /&gt;
 $ git reflog&lt;br /&gt;
&lt;br /&gt;
To automatically sign merges (not default).&lt;br /&gt;
 $ git config merge.gpgsign true&lt;br /&gt;
 $ git -c merge.gpgsign=&#039;true&#039; pull&lt;br /&gt;
&lt;br /&gt;
See remotes.&lt;br /&gt;
 $ git remote -v&lt;br /&gt;
&lt;br /&gt;
Rename a remote. ([https://support.beanstalkapp.com/article/16-how-do-i-rename-an-existing-git-remote ref])&lt;br /&gt;
 $ git remote rename beanstalk origin&lt;br /&gt;
&lt;br /&gt;
Export a git bundle (repository backup)&lt;br /&gt;
 $ git bundle create filename.bundle --all&lt;br /&gt;
&lt;br /&gt;
Trace git operations (especially those involving &amp;lt;code&amp;gt;gpg&amp;lt;/code&amp;gt; signing operations). ([https://gist.github.com/paolocarrasco/18ca8fe6e63490ae1be23e84a7039374 ref])&lt;br /&gt;
 $ GIT_TRACE=1 git commit&lt;br /&gt;
&lt;br /&gt;
Get current commit, short git log entry, and ISO-8601 date&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=iso&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=format:&amp;quot;%Y-%m-%d&amp;quot;  #shorter date&lt;br /&gt;
&lt;br /&gt;
Delete a local branch named `develop` (assuming `develop` is not checked out).&lt;br /&gt;
 $ git branch -d develop&lt;br /&gt;
&lt;br /&gt;
Untrack but don&#039;t remove committed file. ([https://stackoverflow.com/questions/12481639/remove-files-from-git-commit#comment28735458_12481977 Ref/attrib]; useful if you tracked something that shouldn&#039;t be tracked like &amp;lt;code&amp;gt;repo.git/config&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ git rm --cached path/to/committed/file&lt;br /&gt;
&lt;br /&gt;
Pull branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; from remote &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to unchecked out local branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; without altering working tree (useful if worktree files are being used by something else).                                                                                                                                                                                                                                                                           &lt;br /&gt;
 $ git pull origin develop:develop&lt;br /&gt;
&lt;br /&gt;
Set single configuration parameters for the duration of a single command.&lt;br /&gt;
: Disable checking [[GPG]] signatures when running &amp;lt;/code&amp;gt;$ git log&amp;lt;/code&amp;gt;. (see [https://stackoverflow.com/a/19841177 ref])&lt;br /&gt;
 $ git -c log.showSignature=&#039;false&#039; log&lt;br /&gt;
&lt;br /&gt;
: Commit and/or tag with &amp;lt;code&amp;gt;ots --wait&amp;lt;/code&amp;gt; option.&lt;br /&gt;
 $ pathOtsWait=&amp;quot;/home/debuser/.local/share/ots/ots-git-gpg-wrapper-wait.sh&amp;quot;;&lt;br /&gt;
 $ git -c gpg.program=&amp;quot;$pathOtsWait&amp;quot; commit -S&lt;br /&gt;
 $ git -c gpg.program=&amp;quot;$pathOtsWait&amp;quot; tag --sign &amp;quot;some_tag_name&amp;quot; main&lt;br /&gt;
&lt;br /&gt;
Set a remote branch `origin/develop` as the upstream branch for a local branch named `develop`.&amp;lt;ref name=&amp;quot;git_20190816_gitbranch&amp;quot;&amp;gt;“[https://git-scm.com/docs/git-branch/2.23.0 git-branch - List, create, or delete branches]”. ([[2019-08-16]]). &#039;&#039;git-scm.com&#039;&#039;. Accessed [[2023-04-20]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git branch --set-upstream-to=origin/develop develop&lt;br /&gt;
&lt;br /&gt;
Get current commit, short git log entry, and ISO-8601 date&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=iso&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=format:&amp;quot;%Y-%m-%d&amp;quot;  #shorter date&lt;br /&gt;
&lt;br /&gt;
Delete a local branch named `develop` (assuming `develop` is not checked out).&lt;br /&gt;
 $ git branch -d develop&lt;br /&gt;
&lt;br /&gt;
Untrack but don&#039;t remove committed file. ([https://stackoverflow.com/questions/12481639/remove-files-from-git-commit#comment28735458_12481977 Ref/attrib]; useful if you tracked something that shouldn&#039;t be tracked like &amp;lt;code&amp;gt;repo.git/config&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ git rm --cached path/to/committed/file&lt;br /&gt;
&lt;br /&gt;
Pull branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; from remote &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to unchecked out local branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; without altering working tree (useful if worktree files are being used by something else).                                                                                                                                                                                                                                                                           &lt;br /&gt;
 $ git pull origin develop:develop&lt;br /&gt;
&lt;br /&gt;
Set a remote branch `origin/develop` as the upstream branch for a local branch named `develop`.&amp;lt;ref name=&amp;quot;git_20190816_gitbranch&amp;quot;&amp;gt;“[https://git-scm.com/docs/git-branch/2.23.0 git-branch - List, create, or delete branches]”. ([[2019-08-16]]). &#039;&#039;git-scm.com&#039;&#039;. Accessed [[2023-04-20]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git branch --set-upstream-to=origin/develop develop&lt;br /&gt;
&lt;br /&gt;
Disable git credential helper for a single command.&amp;lt;ref name=&amp;quot;so_20170517_gitdisablecredhelp&amp;quot;&amp;gt;[https://stackoverflow.com/users/6309/vonc VonC].  ([[2017-05-17]]).  “[https://stackoverflow.com/a/44033298 How do I disable git&#039;s credential helper for a single repository?]”.  &#039;&#039;[[Stack Overflow]]&#039;&#039;.  Accessed [[2023-08-02]].  [https://web.archive.org/web/20230802203919/https://stackoverflow.com/questions/13198143/how-do-i-disable-gits-credential-helper-for-a-single-repository/44033298 Archived] from the original on [[2023-08-02]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git -c credential.helper= pull origin refs/heads/master&lt;br /&gt;
&lt;br /&gt;
=== [[gpg]] ===&lt;br /&gt;
&#039;&#039;See also [[GnuPG]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|gpg}}&lt;br /&gt;
&lt;br /&gt;
Verify a file named &amp;lt;code&amp;gt;SHA256SUMS&amp;lt;/code&amp;gt; against detached signature file &amp;lt;code&amp;gt;SHA256SUMS.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ gpg --verify SHA256SUMS.gpg SHA256SUMS&lt;br /&gt;
&lt;br /&gt;
Use a temporary keyring&lt;br /&gt;
 $ gpg --no-default-keyring --keyring /dev/shm/temp-keyring.kbx&lt;br /&gt;
&lt;br /&gt;
Refresh keys&lt;br /&gt;
 $ gpg --keyserver keys.openpgp.org --receive-keys deadbeef deadbeef&lt;br /&gt;
 $ gpg --keyserver keyserver.ubuntu.com --receive-keys deadbeef deadbeef&lt;br /&gt;
&lt;br /&gt;
Verify a file (e.g. &amp;lt;code&amp;gt;SHA256SUMS&amp;lt;/code&amp;gt;) against a detached signature (e.g. &amp;lt;code&amp;gt;SHA256SUMS.gpg&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ gpg --verify SHA256SUMS.gpg SHA256SUMS&lt;br /&gt;
&lt;br /&gt;
=== grep ===&lt;br /&gt;
Search for a process named “&amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt;” with &amp;lt;code&amp;gt;ps aux&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;grep bash&amp;lt;/code&amp;gt; but exclude matches of “&amp;lt;code&amp;gt;grep bash&amp;lt;/code&amp;gt;&amp;quot; itself.&lt;br /&gt;
 $ ps aux | grep &amp;quot;bas[h]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ignore binary matches with &amp;lt;code&amp;gt;-I&amp;lt;/code&amp;gt; option.&lt;br /&gt;
 $ grep &amp;quot;a&amp;quot; largeProgram.exe &amp;amp;&amp;amp; echo &amp;quot;Match found.&amp;quot; || echo &amp;quot;No match found.&amp;quot;&lt;br /&gt;
 grep: get_put_char: binary file matches&lt;br /&gt;
 Match found.&lt;br /&gt;
 $ grep -I &amp;quot;a&amp;quot; largeProgram.exe &amp;amp;&amp;amp; echo &amp;quot;Match found.&amp;quot; || echo &amp;quot;No match found.&amp;quot;&lt;br /&gt;
 No match found.&lt;br /&gt;
&lt;br /&gt;
Use [[find]] with [[parallel]] to recursively search a file tree for text matches.&lt;br /&gt;
 $ find . -type f -name &amp;quot;*.tsv&amp;quot; | parallel grep -iHIC3 --color=always -e &#039;mexico&#039; &#039;{}&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;-name &amp;quot;*.tsv&amp;quot;&amp;lt;/code&amp;gt;: Search only files with names ending in &amp;lt;code&amp;gt;.tsv&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt;: Ignore character capitalization.&lt;br /&gt;
: &amp;lt;code&amp;gt;-H&amp;lt;/code&amp;gt;: Print name of file containing match.&lt;br /&gt;
: &amp;lt;code&amp;gt;-C3&amp;lt;/code&amp;gt;: Show 3 lines before and after match.&lt;br /&gt;
: &amp;lt;code&amp;gt;-I&amp;lt;/code&amp;gt;: Do not search binary files.&lt;br /&gt;
: &amp;lt;code&amp;gt;-e &#039;mexico&#039;&amp;lt;/code&amp;gt;: Search for lines containing the string &amp;lt;code&amp;gt;mexico&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{}&#039;&amp;lt;/code&amp;gt;: Filename word placeholder for [[parallel]].&lt;br /&gt;
&lt;br /&gt;
=== [[gs]] ===&lt;br /&gt;
See also [[Ghostscript]].&lt;br /&gt;
&lt;br /&gt;
{{Anchor|pdf-no-img}}Remove raster images from a PDF.&amp;lt;ref name=&amp;quot;so_20160616_removepdfraster&amp;quot;&amp;gt;[https://stackoverflow.com/users/359307/kurt-pfeifle Kurt Pfeifle].  ([[2016-06-16]]).  “[https://stackoverflow.com/a/37858893 ]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2023-10-28]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ gs -o noimages.pdf -sDEVICE=pdfwrite -dFILTERIMAGE input.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[Regular Expressions]] ====&lt;br /&gt;
&lt;br /&gt;
Show lines that match pattern.&lt;br /&gt;
 $ grep &#039;some pattern&#039; -- file.txt&lt;br /&gt;
&lt;br /&gt;
Show lines that don&#039;t match pattern.&lt;br /&gt;
 $ grep -v &#039;some pattern&#039; -- file.txt&lt;br /&gt;
&lt;br /&gt;
Match integers of a range of numbers of digits (e.g. 2 to 3)&lt;br /&gt;
 $ myVar=&amp;quot;$(printf &amp;quot;S2 E3\nS57 E11\nS131 E51\nS7212 E3\n&amp;quot;)&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot;&lt;br /&gt;
 S2 E3&lt;br /&gt;
 S57 E11&lt;br /&gt;
 S131 E51&lt;br /&gt;
 S7212 E3&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot; | grep -E &amp;quot;S[0-9]{2,3} &amp;quot;&lt;br /&gt;
 S57 E11&lt;br /&gt;
 S131 E51&lt;br /&gt;
&lt;br /&gt;
Match http URLs in a text file (see [https://unix.stackexchange.com/a/181258 ref])&lt;br /&gt;
 $ cat input.txt | grep -Eo &amp;quot;(http|https)://[a-zA-Z0-9./?=_%:-]*&amp;quot; | sort -u&lt;br /&gt;
&lt;br /&gt;
=== [[gunzip]] ===&lt;br /&gt;
See [[{{PAGENAME}}#gzip|#gzip]].&lt;br /&gt;
&lt;br /&gt;
=== [[gzip]] ===&lt;br /&gt;
Transform a &amp;lt;code&amp;gt;sql.gz&amp;lt;/code&amp;gt; archive into a &amp;lt;code&amp;gt;sql.xz&amp;lt;/code&amp;gt; archive.&lt;br /&gt;
 $ gunzip -c archivo.sql.gz | xz -z - &amp;gt; archivo.sql.xz&lt;br /&gt;
&lt;br /&gt;
=== [[head]] ===&lt;br /&gt;
Note: Consider using in tandem with [[#tail|tail]] when printing ranges of lines from large files.&lt;br /&gt;
&lt;br /&gt;
Print first 3 lines.&lt;br /&gt;
 $ seq 1 10 | head -n3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
&lt;br /&gt;
Print all but last 3 lines.&lt;br /&gt;
 $ seq 1 10 | head -n-3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
{{Anchor|head-slice}}{{Anchor|head-slice-bytes}}Print 4th to 7th bytes of a non-seekable stream (stdin, FIFO, socket). For seekable file, see [[#tail-slice|#tail]].&lt;br /&gt;
 $ selStart=$((4-1)); selEnd=$((7-1)); selCount=$((selEnd-selStart+1));&lt;br /&gt;
 $ byteSource.sh | head -c $((selEnd+1)) | tail -c $selCount;&lt;br /&gt;
&lt;br /&gt;
=== [[iftop]] ===&lt;br /&gt;
Show data traffic (i.e. [[bandwidth]] usage) on network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;. Note: consider using in tandem with [[nethogs]].&lt;br /&gt;
 $ sudo iftop -i eth0&lt;br /&gt;
&lt;br /&gt;
=== [[iotop]] ===&lt;br /&gt;
Show disk write rates for a given process by PID.&lt;br /&gt;
 $ iotop -p PID&lt;br /&gt;
&lt;br /&gt;
List accumulative (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;) disk read/write rates for all &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; processes via process PIDs (&amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt;), updating every 10 seconds (&amp;lt;code&amp;gt;-d10&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ sudo iotop -ad10 $(pgrep &amp;quot;tar|xz&amp;quot; | xargs -I &amp;quot;{}&amp;quot; echo -n &amp;quot;-p {} &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== [[ip]] ===&lt;br /&gt;
Show available network interfaces.&lt;br /&gt;
 $ ip link show&lt;br /&gt;
&lt;br /&gt;
=== [[ImageMagick]] ===&lt;br /&gt;
Convert a [[PNG]] file into a [[JPEG]] at 90% quality.&lt;br /&gt;
  $ convert input.png -quality 90 output.jpg&lt;br /&gt;
&lt;br /&gt;
Convert a [[GIF]] into a set of frames (Note: May fail with some optimized GIF formats)&lt;br /&gt;
 $ convert Year_2038_problem.gif output%02d.gif&lt;br /&gt;
&lt;br /&gt;
=== [[jdupes]] ===&lt;br /&gt;
List duplicates in DIR greater than or equal to 100MB.&lt;br /&gt;
 $ jdupes -X size+=:100MB DIR -r&lt;br /&gt;
&lt;br /&gt;
List duplicates within DIR1 (not following subdirectories) and within DIR2 (following subdirectories)&lt;br /&gt;
 $ jdupes -X size+=:100MB DIR1 -R DIR2&lt;br /&gt;
&lt;br /&gt;
List duplicates within DIR1, DIR2, and DIR3 recursively, listing duplicates of DIR1 first&lt;br /&gt;
 $ jdupes -r -O DIR1 DIR2 DIR3&lt;br /&gt;
&lt;br /&gt;
=== [[journalctl]] ===&lt;br /&gt;
Show previous 1 hour of logs:&lt;br /&gt;
 $ journalctl --utc --all --output=short-iso --since=-1h&lt;br /&gt;
&lt;br /&gt;
Show logs since &amp;lt;code&amp;gt;2023-01-10T09:15&amp;lt;/code&amp;gt; and before &amp;lt;code&amp;gt;2023-01-10T13:00&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $ journalctl --utc --all --output=short-iso --since=\&amp;quot;2023-01-10 09:15\&amp;quot; --until=\&amp;quot;2023-01-10 13:00\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [[less]] ===&lt;br /&gt;
Display file as scrollable buffer.&lt;br /&gt;
 $ less file.txt&lt;br /&gt;
&lt;br /&gt;
Display file and display live updates.&lt;br /&gt;
 $ less +F file.txt&lt;br /&gt;
&lt;br /&gt;
Display file while truncating display of long lines.&lt;br /&gt;
 $ less -S file.txt&lt;br /&gt;
&lt;br /&gt;
Display file while interpreting [[ANSI]] color codes (e.g. &amp;lt;code&amp;gt;$ jq -C &#039;.&#039; file.json | less --RAW-CONTROL-CHARS&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ less --RAW-CONTROL-CHARS&lt;br /&gt;
&lt;br /&gt;
=== [[ln]] ===&lt;br /&gt;
Create symlink named &amp;lt;code&amp;gt;my_linked_dir&amp;lt;/code&amp;gt; to a directory at path &amp;lt;code&amp;gt;~/some/long/path/my_dir&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ ln -sfn ~/some/long/path/my_dir my_linked_dir&lt;br /&gt;
&lt;br /&gt;
=== [[locate]] ===&lt;br /&gt;
Install on [[ubuntu]] 24.{{bkc|[[2024-12-11]]: Apparently this package used to be part of GNU &amp;lt;code&amp;gt;findutils&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
  $ sudo apt install locate&lt;br /&gt;
&lt;br /&gt;
=== [[ls]] ===&lt;br /&gt;
Note: assumes &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; from GNU Coreutils 8.32&lt;br /&gt;
&lt;br /&gt;
List all files, sorted by [[ISO-8601]]-style date.&lt;br /&gt;
 $ ls -alh --time-style=long-iso | sort -k6,7&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei  88K 2005-08-19 19:18 file1&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 930K 2010-07-28 02:01 file2&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 2.4M 2016-05-18 14:52 file3&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 7.2K 2021-05-11 15:29 file4&lt;br /&gt;
&lt;br /&gt;
=== [[lsof]] ===&lt;br /&gt;
Display all files opened by a process by a single PID.&amp;lt;ref name=&amp;quot;tecmint_20230714_lsof-examples&amp;quot; /&amp;gt;&lt;br /&gt;
 $ lsof -p PID&lt;br /&gt;
&lt;br /&gt;
Display all files opened by a process by name (e.g. [[xz]])&amp;lt;ref name=&amp;quot;tecmint_20230714_lsof-examples&amp;quot;&amp;gt;[[Narad Shrestha]].  ([[2023-07-14]]).  “[https://www.tecmint.com/10-lsof-command-examples-in-linux/ How to Use ‘lsof’ Command to Check Open Files in Linux]”.  &#039;&#039;[[tecmint.com]]&#039;&#039;.  Accessed [[2024-01-05]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ while read -r line; do lsof -p &amp;quot;$line&amp;quot;; printf &amp;quot;\n&amp;quot;; done &amp;lt; &amp;lt;(pgrep xz)&lt;br /&gt;
&lt;br /&gt;
=== [[mail]] ===&lt;br /&gt;
Reference: https://devanswers.co/you-have-mail-how-to-read-mail-in-ubuntu/&lt;br /&gt;
&lt;br /&gt;
Commands:&lt;br /&gt;
 $ mail   # start mail&lt;br /&gt;
 &amp;amp; h$     # list latest messages&amp;lt;ref name=&amp;quot;johnkerl_19970428_unix-mail&amp;quot;&amp;gt;[[John Kerl]]  ([[1997-04-28]]).  “[https://www.johnkerl.org/doc/mail-how-to.html How to use the Unix command-line mail tool]”.  &#039;&#039;[[johnkerl.org]]&#039;&#039;.  Accessed [[2024-01-05]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 &amp;amp; 5      # read message 5&lt;br /&gt;
 &amp;amp; d 1    # delete message 1&lt;br /&gt;
 &amp;amp; q      # quit mail&lt;br /&gt;
&lt;br /&gt;
Send mail to self:&lt;br /&gt;
 $ mail -s &amp;quot;I&#039;m in your base&amp;quot; -- &amp;quot;$(whoami)&amp;quot; &amp;lt; &amp;lt;(printf &amp;quot;Killing your dudes.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Delete all mail&amp;lt;ref name=&amp;quot;so_20121117_deletemail&amp;quot;&amp;gt;[[timaschew]]. ([[2012-11-17]]). “[https://stackoverflow.com/a/13430307 How do I purge a linux mail box with huge number of emails? [closed]]”. &#039;&#039;Stack Overflow&#039;&#039;. Accessed [[2023-06-06]].&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ mail -N&lt;br /&gt;
 &amp;amp; d *&lt;br /&gt;
 &amp;amp; quit&lt;br /&gt;
&lt;br /&gt;
=== [[make]] ===&lt;br /&gt;
&#039;&#039;See [[GNU Make]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compile source code according to a file named &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
Note, even with [[GNU make]], column 1 indentations REQUIRE a tab (i.e. `\t`), not a space (`\s`).&amp;lt;ref name=&amp;quot;se_20210701_maketabs&amp;quot;&amp;gt;[https://retrocomputing.stackexchange.com/users/79/stephen-kitt Stephen Kitt].  ([[2021-07-01]]).  “[https://retrocomputing.stackexchange.com/a/20293 Why does make only accept tab-indentation?]”  &#039;&#039;Stack Exchange&#039;&#039;.  Accessed [[2023-07-10]]. [https://web.archive.org/web/20230528004825/https://retrocomputing.stackexchange.com/questions/20292/why-does-make-only-accept-tab-indentation Archived] from the original on [[2023-05-28]].&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile multiple source code files with a single `make all` command.&amp;lt;ref name=&amp;quot;so_20110510_makemultiplefiles&amp;quot;&amp;gt;[https://stackoverflow.com/users/714501/cnicutar cnicutar].  ([[2011-05-10]]).  “[https://stackoverflow.com/a/5950445/10850071 Makefile to compile multiple C programs?]”.  &#039;&#039;Stack Overflow&#039;&#039;.  Accessed [[2023-07-13]].  [https://web.archive.org/web/20230714044550/https://stackoverflow.com/questions/5950395/makefile-to-compile-multiple-c-programs/5950445 Archived] from the original on [[2023-07-14]].&amp;lt;/ref&amp;gt; `Makefile` contents:&lt;br /&gt;
&lt;br /&gt;
 all: program1 program2&lt;br /&gt;
 &lt;br /&gt;
 program1: program1.c&lt;br /&gt;
     gcc -o program1 program1.c&lt;br /&gt;
 &lt;br /&gt;
 program2: program2.c&lt;br /&gt;
     gcc -o program2 program2.c&lt;br /&gt;
&lt;br /&gt;
=== man ===&lt;br /&gt;
Display command manual.&lt;br /&gt;
&lt;br /&gt;
Show [[Bash]] manual.&lt;br /&gt;
 $ man bash&lt;br /&gt;
&lt;br /&gt;
=== [[mkdir]] ===&lt;br /&gt;
Create an empty directory called &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ mkdir some_dir&lt;br /&gt;
&lt;br /&gt;
Create an empty subdirectory at &amp;lt;code&amp;gt;some/path/some_dir&amp;lt;/code&amp;gt;, creating all the parent subdirectories as well.&lt;br /&gt;
 $ mkdir -p some/path/some_dir&lt;br /&gt;
&lt;br /&gt;
: This is equivalent to:&lt;br /&gt;
 $ mkdir some&lt;br /&gt;
 $ mkdir some/path&lt;br /&gt;
 $ mkdir some/path/some_dir&lt;br /&gt;
&lt;br /&gt;
=== [[mdadm]] ===&lt;br /&gt;
Software [[RAID]] manager.&lt;br /&gt;
&lt;br /&gt;
Check status of RAID device &amp;lt;code&amp;gt;/dev/md0&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;se_20120108_mmdadmcheck&amp;quot;&amp;gt;[[Gilles]]. ([[2012-01-08]]). “[https://unix.stackexchange.com/a/28642/411854 How to check &#039;mdadm&#039; RAIDs while running?]”. Accessed [[2023-03-26]]. [https://web.archive.org/web/20150925044124/http://unix.stackexchange.com/questions/28636/how-to-check-mdadm-raids-while-running/28642#28642 Archived] from the original on [[2015-09-25]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Check status of all RAID devices.&amp;lt;ref name=&amp;quot;se_20120108_mmdadmcheck&amp;quot; /&amp;gt;&lt;br /&gt;
 $ sudo cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
=== mimetype ===&lt;br /&gt;
Get file mimetype&lt;br /&gt;
 $ cat file.jpg | mimetype --stdin&lt;br /&gt;
&lt;br /&gt;
=== mktemp ===&lt;br /&gt;
Create a temporary directory.&lt;br /&gt;
 $ mktemp -d&lt;br /&gt;
 /tmp/tmp.FV7MlItXOs&lt;br /&gt;
&lt;br /&gt;
Create a temporary directory and store its name.&lt;br /&gt;
 $ myTempDir=&amp;quot;$(mktemp -d)&amp;quot;; declare -p myTempDir;&lt;br /&gt;
 declare -- myTempDir=&amp;quot;/tmp/tmp.kmHLhKvlQV&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Create a temporary file&lt;br /&gt;
 $ mktemp&lt;br /&gt;
 /tmp/tmp.lnq5aBZmuK&lt;br /&gt;
&lt;br /&gt;
Create a temporary file in a custom directory&lt;br /&gt;
 $ myDir=&amp;quot;$HOME/temp&amp;quot;; mkdir &amp;quot;$myDir&amp;quot;;&lt;br /&gt;
 $ mktemp -p &amp;quot;$myDir&amp;quot;&lt;br /&gt;
 /home/baltakatei/temp/tmp.YENA9Yp7lU&lt;br /&gt;
&lt;br /&gt;
Create a temporary file or directory with a custom name template.&lt;br /&gt;
 $ mktemp foo_XXX&lt;br /&gt;
 foo_yVu&lt;br /&gt;
 $ mktemp foo_XXXXXXXX&lt;br /&gt;
 foo_rVJOX8GE&lt;br /&gt;
 $ mktemp -d bar_XXXXXXXX&lt;br /&gt;
 bar_10Bt5tfy&lt;br /&gt;
&lt;br /&gt;
=== [[mpv]] ===&lt;br /&gt;
Use newline-delimited stdin list of file paths as playlist.&lt;br /&gt;
 $ find ~/Music/ -type f | mpv --playlist=-&lt;br /&gt;
&lt;br /&gt;
Enable shuffle&lt;br /&gt;
 $ mpv --shuffle&lt;br /&gt;
&lt;br /&gt;
Settings for fast playback (e.g. 2x){{bkc|[[2024-08-11]]: This option may cause issues with playback of some [[FLAC]] files.}}&lt;br /&gt;
 $ mpv --af=scaletempo=stride=15:overlap=1:search=15&#039;&lt;br /&gt;
&lt;br /&gt;
Play video with subtitle file&lt;br /&gt;
 $ mpv --embed-subs=&amp;quot;$filepath&amp;quot; video.mp4&lt;br /&gt;
&lt;br /&gt;
=== [[mv]] ===&lt;br /&gt;
Move a file or directory.&lt;br /&gt;
&lt;br /&gt;
Move file &amp;lt;code&amp;gt;some_file&amp;lt;/code&amp;gt; into directory &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt;, replacing &amp;lt;code&amp;gt;some_dir/some_file&amp;lt;/code&amp;gt; if it exists.&lt;br /&gt;
 $ mv some_file ./some_dir  # make sure &#039;some_dir&#039; is not a file&lt;br /&gt;
&lt;br /&gt;
: Perform move without replacement and throwing error if so.&lt;br /&gt;
 $ mv -p some_file ./some_dir&lt;br /&gt;
&lt;br /&gt;
=== [[neofetch]] ===&lt;br /&gt;
Show system information without art&lt;br /&gt;
 $ neofetch --off&lt;br /&gt;
&lt;br /&gt;
Show system information without formatting or art.&lt;br /&gt;
 $ neofetch --stdout&lt;br /&gt;
&lt;br /&gt;
=== [[nethogs]] ===&lt;br /&gt;
Show data traffic (i.e. [[bandwidth]] usage) by process on network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ sudo nethogs eth0&lt;br /&gt;
&lt;br /&gt;
: Toggle between data rates and total data amounts with `m`.&lt;br /&gt;
&lt;br /&gt;
=== [[notify-send]] ===&lt;br /&gt;
Note (Debian): Installed via the [[libnotify-bin]] package.&lt;br /&gt;
&lt;br /&gt;
Create a system notification:&lt;br /&gt;
 $ notify-send &amp;quot;title&amp;quot; &amp;quot;body&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== [[openbox]] ===&lt;br /&gt;
A window manager for [[LxQt]] and [[Lubuntu]].&lt;br /&gt;
&lt;br /&gt;
Reload configuration files.{{bkc|[[2024-08-21]]: Such as those kept at &amp;lt;code&amp;gt;/usr/share/themes/Mikachu/openbox-3/themerc&amp;lt;/code&amp;gt;.  }}&amp;lt;ref name=&amp;quot;askubuntu_20161006_openbox-window-resize-grab-area&amp;quot;&amp;gt;[https://askubuntu.com/users/248158/dk-bose DK Bose].  ([[2016-10-06]]).  “[https://askubuntu.com/a/834022 Size of grab area for resizing window in lubuntu]”.  Accessed [[2024-08-21]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ openbox --reconfigure&lt;br /&gt;
&lt;br /&gt;
=== [[ots]] ===&lt;br /&gt;
Use [[OpenTimestamps]] ([https://opentimestamps.org/ website]) to timestamp files against the [[Bitcoin]] blockchain. Program by [[Peter Todd]], a [[Bitcoin Core]] developer.&lt;br /&gt;
&lt;br /&gt;
Install Opentimestamps on Ubuntu 24 via [[pipx]].{{bkc|[[2025-01-18]]: [[pipx]] recommended to install [[ots]] due to [[PEP 668]] ([https://peps.python.org/pep-0668/ link] mandating partitioning operating system environment from user-space. }} Provides the &amp;lt;code&amp;gt;ots&amp;lt;/code&amp;gt; executable.&lt;br /&gt;
 $ sudo apt install pipx&lt;br /&gt;
 $ pipx install opentimestamps-client&lt;br /&gt;
&lt;br /&gt;
Timestamp &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt;. Creates timestamp file &amp;lt;code&amp;gt;file.txt.ots&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ ots s file.txt&lt;br /&gt;
 $ ots stamp file.txt&lt;br /&gt;
&lt;br /&gt;
Upgrade a timestamp file. Creates a backup file (&amp;lt;code&amp;gt;file.txt.ots.bak&amp;lt;/code&amp;gt;) if necessary.&lt;br /&gt;
 $ ots upgrade file.txt.ots&lt;br /&gt;
 $ ots u file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Verify a timestamp file.&lt;br /&gt;
 $ ots verify file.txt.ots&lt;br /&gt;
 $ ots v file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Verify a specific file against a specific timestamp file.&lt;br /&gt;
 $ ots v -f file.txt file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Timestamp all files in working directory that lack a timestamp, running &amp;lt;code&amp;gt;ots&amp;lt;/code&amp;gt; on 1000 files at a time.&lt;br /&gt;
 $ din=&amp;quot;$(pwd)&amp;quot;; while read -r line; do if [[ ! -f &amp;quot;${line}.ots&amp;quot; ]]; then printf &amp;quot;%s\0&amp;quot; &amp;quot;$line&amp;quot;; fi; done &amp;lt; &amp;lt;(find &amp;quot;$din&amp;quot; -mindepth 1 -maxdepth 1 -type f ! -name &amp;quot;*.ots&amp;quot; | shuf; ) | xargs -0 -L 1000 ots s&lt;br /&gt;
&lt;br /&gt;
=== [[pandoc]] ===&lt;br /&gt;
Convert [[markdown]] text file into mediawiki code.&amp;lt;ref name=&amp;quot;so_20100926_markdown-to-mediawiki&amp;quot;&amp;gt;[https://stackoverflow.com/users/315013/applicative applicative].  ([[2010-09-26]]).  “[https://stackoverflow.com/a/3796608 Are there any tools to convert markdown to Wiki text in other formats]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-02-27]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ pandoc -f markdown -t mediawiki -o output.wc input.txt&lt;br /&gt;
&lt;br /&gt;
=== [[par2]] ===&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|par2}}&lt;br /&gt;
&lt;br /&gt;
Create parity files of &amp;lt;code&amp;gt;archive.tar.xz&amp;lt;/code&amp;gt; with default settings. &lt;br /&gt;
 $ par2 create archive.tar.xz.par2 archive.tar.xz&lt;br /&gt;
&lt;br /&gt;
=== [[GNU parallel|parallel]] ===&lt;br /&gt;
&#039;&#039;See [[GNU parallel]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Duplicate a set of directories (non-recursively) (e.g. home sub-directories). Metadata not copied.&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -mindepth 1 -maxdepth 1 -type d | parallel mkdir &amp;quot;$HOME/{}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hash every file in the home directory.&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel --jobs=&amp;quot;&amp;quot; sha256sum &#039;{}&#039;               # use all CPUs&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel --jobs=&amp;quot;25%&amp;quot; sha256sum &#039;{}&#039;  # use at most 25% of CPU cores&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel sha256sum &#039;{}&#039;               # &lt;br /&gt;
&lt;br /&gt;
Run a thread for every item in an array.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ myArray=(&amp;quot;jan&amp;quot;); myArray=(&amp;quot;feb&amp;quot;); myArray=(&amp;quot;mar&amp;quot;);&lt;br /&gt;
$ declare -p myArray&lt;br /&gt;
declare -a myArray=([0]=&amp;quot;jan&amp;quot; [1]=&amp;quot;feb&amp;quot; [2]=&amp;quot;mar&amp;quot;)&lt;br /&gt;
$ parallel echo &#039;{}&#039; ::: &amp;quot;${myArray[@]}&amp;quot;&lt;br /&gt;
jan&lt;br /&gt;
feb&lt;br /&gt;
mar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supply different arguments for each job with an `--arg-file`.&lt;br /&gt;
 $ printf &amp;quot;foo\tbee\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ printf &amp;quot;bar\tboo\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ printf &amp;quot;baz\ttax\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ parallel --col-sep &#039;\t&#039; --arg-file args.txt echo &#039;{2}&#039; &#039;{1}&#039;;&lt;br /&gt;
 bee foo&lt;br /&gt;
 boo bar&lt;br /&gt;
 tax baz&lt;br /&gt;
&lt;br /&gt;
Avoid OOM by suspending jobs on low memory via &amp;lt;code&amp;gt;--memsuspend 512M&amp;lt;/code&amp;gt; (e.g. 512 [[mebibytes]]), which suspends job if less than &amp;lt;code&amp;gt;2 * 512 = 1024&amp;lt;/code&amp;gt; mebibytes memory free. If only one job remains, it will not suspend.&lt;br /&gt;
 $ seq 1 10 | parallel --memsuspend 512M echo &#039;{}&#039;;&lt;br /&gt;
&lt;br /&gt;
=== paste ===&lt;br /&gt;
List contents of three files as columns.&lt;br /&gt;
 $ printf &amp;quot;foo\nbar\nbaz\n&amp;quot; &amp;gt; 1.txt&lt;br /&gt;
 $ printf &amp;quot;bee\nboo\ntax\n&amp;quot; &amp;gt; 2.txt&lt;br /&gt;
 $ paste 1.txt 2.txt&lt;br /&gt;
 foo	bee&lt;br /&gt;
 bar	boo&lt;br /&gt;
 baz	tax&lt;br /&gt;
&lt;br /&gt;
Split lines of a single file into columns&lt;br /&gt;
 $ seq 1 13 | paste - - -  # three columns&lt;br /&gt;
 1	2	3&lt;br /&gt;
 4	5	6&lt;br /&gt;
 7	8	9&lt;br /&gt;
 10	11	12&lt;br /&gt;
 13&lt;br /&gt;
&lt;br /&gt;
=== pipx ===&lt;br /&gt;
[[pipx]] is a tool that automates the creation of [[virtual environment]]s when installing command-line [[python]] packages via [[pip]].&lt;br /&gt;
&lt;br /&gt;
Install [[pipx]].&lt;br /&gt;
 $ sudo apt install pipx&lt;br /&gt;
 $ pipx ensurepath   # make sure PATH environment variable contains pipx directories&lt;br /&gt;
&lt;br /&gt;
Install [[OpenAI]] [[Whisper (speech recognition system)|Whisper]]&lt;br /&gt;
 $ sudo apt install ffmpeg   # get ffmpeg dependency&lt;br /&gt;
 $ pipx install openai-whisper&lt;br /&gt;
&lt;br /&gt;
Upgrade OpenAI Whisper&lt;br /&gt;
 $ pipx upgrade openai-whisper  # as opposed to &#039;pip install -U openai-whisper&#039;&lt;br /&gt;
&lt;br /&gt;
=== play ([[sox]]) ===&lt;br /&gt;
Play an audio file from the [[sox]] package. (limited to formats such as MP3, WAV, AIFF, OGG)&lt;br /&gt;
 $ play ~/Music/song.wav&lt;br /&gt;
&lt;br /&gt;
Play an audio file via [[cron]]. To do so, insert the following lines into a [[bash]] script run by [[cron]] (assuming [[Debian]] system)&amp;lt;ref name=&amp;quot;askubuntu_20180610_cron-chime&amp;quot;&amp;gt;[[WinEunuuchs2Unix]].  ([[2018-06-10]]).  “[https://askubuntu.com/a/1045344 Help using crontab to play a sound]”.  [[askubuntu.com]].  Accessed [[2025-10-11]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
(&lt;br /&gt;
  export XDG_RUNTIME_DIR=/run/user/$(id -u);&lt;br /&gt;
  play --vol 0.2 $HOME/Music/chime.wav;&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[ps]] ===&lt;br /&gt;
Show process PIDs and full commands.&lt;br /&gt;
 $ ps -eo pid,args&lt;br /&gt;
&lt;br /&gt;
=== [[pdftk]] ===&lt;br /&gt;
Install{{bkc|[[2025-01-26]]: As of [[2025]], &amp;lt;code&amp;gt;$ sudo apt install pdftk&amp;lt;/code&amp;gt; no longer works, likely due to licensing issues with [[PDF Labs]] ([https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ web]) }}&amp;lt;ref name=&amp;quot;gitlab_2023_pdftk-java&amp;quot;&amp;gt;[[Marc Vinyals]].  ([[2023]]).  “[https://gitlab.com/pdftk-java/pdftk pdftk-java]”.  &#039;&#039;[[gitlab.com]]&#039;&#039;.  Accessed [[2025-01-26]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo apt install pdftk-java &lt;br /&gt;
&lt;br /&gt;
Combine PDFs&lt;br /&gt;
 $ pdftk doc1.pdf doc2.pdf doc3.pdf cat output output.pdf&lt;br /&gt;
&lt;br /&gt;
Extract page range from a PDF. (e.g. extract first 13 pages)&lt;br /&gt;
 $ pdftk input.pdf cat 1-13 output output.pdf&lt;br /&gt;
&lt;br /&gt;
=== [[pdftotext]] ===&lt;br /&gt;
Install.&lt;br /&gt;
 $ sudo apt install poppler-utils&lt;br /&gt;
&lt;br /&gt;
Convert PDF to text. (Note: If text is [[Raster graphics|rasterized]], use [[#tesseract|tesseract]] instead). &lt;br /&gt;
 $ pdftotext output.pdf output.txt&lt;br /&gt;
&lt;br /&gt;
=== [[pgrep]] ===&lt;br /&gt;
Exit early if a specific process (e.g. &amp;lt;code&amp;gt;yt-dlp&amp;lt;/code&amp;gt;) is already running.&lt;br /&gt;
  $ if pgrep &amp;quot;yt-dlp&amp;quot; 1&amp;gt;/dev/random 2&amp;gt;&amp;amp;1; then exit 1; fi;&lt;br /&gt;
&lt;br /&gt;
=== printf ===&lt;br /&gt;
==== GNU Coreutils ====&lt;br /&gt;
Print a &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; character.&amp;lt;ref name=&amp;quot;so_20130221_printf-exclam&amp;quot;&amp;gt;[https://stackoverflow.com/users/465183/gilles-qu%c3%a9not Giles Quénot].  ([[2013-02-21]]).  “[https://stackoverflow.com/a/15011849 How to printf an exclamation mark in bash?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2026-01-15]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ printf &amp;quot;\041\n&amp;quot;&lt;br /&gt;
 !&lt;br /&gt;
&lt;br /&gt;
Round a float to nearest integer&amp;lt;ref&amp;gt;{{bk}}: [[2023-09-09]]: Tested with GNU Coreutils 8.32&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;;&lt;br /&gt;
  14&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  14.29&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.1f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  14.3&lt;br /&gt;
  $ myVar=&amp;quot;-14.28571&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  -14.29&lt;br /&gt;
  $ myVar=&amp;quot;28.57142&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  28.57&lt;br /&gt;
  $ myVar=&amp;quot;28.57142&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
: Note, GNU Coreutils printf uses “[[Rounding|round to even]]” (i.e. “Bankerʼs rounding”) for cases when 5 must be rounded.&amp;lt;ref name=&amp;quot;se_20151101_printfrounding&amp;quot;&amp;gt;user79742.  ([[2015-11-01]]).  “[https://unix.stackexchange.com/a/240113 Weird float rounding behavior with printf]”.  &#039;&#039;[[unix.stackexchange.com]]&#039;&#039;.  Accessed [[2023-10-04]].  [https://web.archive.org/web/20231004195404/https://unix.stackexchange.com/questions/240112/weird-float-rounding-behavior-with-printf/240113#240113 Archived] from the original on [[2023-10-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ myVar=&amp;quot;5.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  6&lt;br /&gt;
  $ myVar=&amp;quot;6.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot; &lt;br /&gt;
  6&lt;br /&gt;
  $ myVar=&amp;quot;7.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  8&lt;br /&gt;
  $ myVar=&amp;quot;8.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot; &lt;br /&gt;
  8&lt;br /&gt;
&lt;br /&gt;
Print integer with leading zeroes. (see [https://stackoverflow.com/a/18460742/10850071 ref])&lt;br /&gt;
&lt;br /&gt;
 $ n=7; printf &amp;quot;%05d\n&amp;quot; &amp;quot;$n&amp;quot;;&lt;br /&gt;
 00007&lt;br /&gt;
&lt;br /&gt;
Print a bash array (see [https://stackoverflow.com/a/15692004/10850071 ref])&lt;br /&gt;
&lt;br /&gt;
 $ declare -a my_array; my_array+=(&amp;quot;jan&amp;quot;); my_array+=(&amp;quot;feb&amp;quot;);&lt;br /&gt;
 $ printf &#039;%s\n&#039; &amp;quot;${my_array[@]}&amp;quot;;&lt;br /&gt;
 jan&lt;br /&gt;
 feb&lt;br /&gt;
&lt;br /&gt;
Print a progress bar&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 total_iterations=100&lt;br /&gt;
 current_iteration=0&lt;br /&gt;
 &lt;br /&gt;
 while [ $current_iteration -lt $total_iterations ]; do&lt;br /&gt;
     # Your actual loop content goes here&lt;br /&gt;
     sleep 0.1 # This is just an example, replace with your actual task&lt;br /&gt;
 &lt;br /&gt;
     # Calculate progress percentage&lt;br /&gt;
     progress_percentage=$(( 100 * current_iteration / total_iterations ))&lt;br /&gt;
 &lt;br /&gt;
     # Print progress percentage without causing scrolling&lt;br /&gt;
     printf &amp;quot;\rProgress: %3d%%&amp;quot; $progress_percentage&lt;br /&gt;
 &lt;br /&gt;
     # Increment the iteration counter&lt;br /&gt;
     current_iteration=$(( current_iteration + 1 ))&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Print a newline character to move to the next line after the loop is done&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
Convert hexadecimal into decimal&lt;br /&gt;
 $ printf &amp;quot;%u\n&amp;quot; &amp;quot;0xFFFF&amp;quot;&lt;br /&gt;
 65535&lt;br /&gt;
&lt;br /&gt;
==== C stdio.h ====&lt;br /&gt;
Print an int as a hexadecimal&lt;br /&gt;
&lt;br /&gt;
 int a=17; printf(&amp;quot;%x\n&amp;quot;,a);&lt;br /&gt;
&lt;br /&gt;
Print an int as a binary (&amp;lt;code&amp;gt;glibc &amp;gt;2.35&amp;lt;/code&amp;gt;, check via &amp;lt;code&amp;gt;$ ldd --version&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 int main()&lt;br /&gt;
   int a=1023; printf(&amp;quot;%b\n&amp;quot;,a); return 0;&lt;br /&gt;
&lt;br /&gt;
: When compiled with &amp;lt;code&amp;gt;gcc-12&amp;lt;/code&amp;gt; (previous versions throw errors) and glibc &amp;gt;2.35, this prints:&lt;br /&gt;
&lt;br /&gt;
 1111111111&lt;br /&gt;
&lt;br /&gt;
=== [[readlink]] ===&lt;br /&gt;
Print canonical path of a file, resolving any symlinks. (Note: Specific to [[Debian]]/[[Ubuntu]]-like systems. For [[macOS]], see &amp;lt;code&amp;gt;[[realpath]]&amp;lt;/code&amp;gt; or [[homebrew]]ʼs &amp;lt;code&amp;gt;[[grealpath]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ readlink -f some_file&lt;br /&gt;
&lt;br /&gt;
=== [[reset]] ===&lt;br /&gt;
Reset terminal state.&lt;br /&gt;
 $ reset&lt;br /&gt;
&lt;br /&gt;
=== [[rev]] ===&lt;br /&gt;
Get a counted list of unique file extensions in the current working directory.&lt;br /&gt;
&lt;br /&gt;
 $ find . -mindepth 1 -maxdepth 1 -type f | rev | cut -d&#039;.&#039; -f1 | rev | sort | uniq -c | sort -hk1;&lt;br /&gt;
&lt;br /&gt;
: An explanation:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ find . -mindepth 1 -maxdepth 1 -type f | \  # Get a list of files in current working directory.&lt;br /&gt;
  rev | \              # Reverse order of characters within each line.&lt;br /&gt;
  cut -d&#039;.&#039; -f1 | \    # Cut all characters except for those before the final `.` in the path.&lt;br /&gt;
  rev | \              # Restore order of characters within each line.&lt;br /&gt;
  sort | \             # Sort for uniq.&lt;br /&gt;
  uniq -c | \          # List and count unique lines.&lt;br /&gt;
  sort -hk1;           # Sort by line counts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[rm]] ===&lt;br /&gt;
Delete a file named &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ rm file.txt&lt;br /&gt;
&lt;br /&gt;
Delete a directory named &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt; as well as all of its contents.&lt;br /&gt;
 $ rm -r some_dir&lt;br /&gt;
&lt;br /&gt;
=== [[rmdir]] ===&lt;br /&gt;
Delete an empty directory.&lt;br /&gt;
 $ rmdir some_dir&lt;br /&gt;
&lt;br /&gt;
=== [[rsync]] ===&lt;br /&gt;
Note: These commands assume use of &#039;&#039;rsync&#039;&#039; version &amp;lt;code&amp;gt;3.2.7 protocol version 31&amp;lt;/code&amp;gt;, which is available on [[Debian]] version &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|rsync}}&lt;br /&gt;
&lt;br /&gt;
Exclude all dotfiles or dotdirectories at any directory level.&lt;br /&gt;
 $ echo &amp;quot;.*/**&amp;quot; &amp;gt;&amp;gt; exclude.txt&lt;br /&gt;
 $ rsync -avu --exclude-from=exclude.txt somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
&lt;br /&gt;
Copy all files contained within a directory named &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; located within &amp;lt;code&amp;gt;somepath&amp;lt;/code&amp;gt; into a directory named &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; within &amp;lt;code&amp;gt;anotherpath&amp;lt;/code&amp;gt;, preserving file attributes (e.g. user:group, read/write/execute permissions), and overwriting existing files within &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; if they differ in modification date and/or size from those of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;. The forward slashes after &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; are significant; omitting them may cause the creation of a new directory layer instead of synchronizing the file trees of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
&lt;br /&gt;
Make the contents of &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; exactly match that of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;, overwriting and deleting files as required in &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; via the &amp;lt;code&amp;gt;--delete-before&amp;lt;/code&amp;gt; command, performing all deletions before file copying begins. This is useful for updating a backup of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; at &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --delete-before somepath/SOURCE/ anotherpath/somedir/DEST/&lt;br /&gt;
&lt;br /&gt;
Copy files from a local &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; in a remote user&#039;s home directory (e.g. &amp;lt;code&amp;gt;/home/username/DEST/&amp;lt;/code&amp;gt;) via the [[ssh]] command.&lt;br /&gt;
 $ rsync -avu -e &#039;ssh&#039; somepath/SOURCE/ username@hostname:DEST/&lt;br /&gt;
&lt;br /&gt;
Copy files only files containing &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt; in their filenames from a &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;. This preserves the directory tree of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
:: Exclude &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt;files larger than 100 000 000 bytes.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; --max-size=100MB --remove-source-files somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
: Move (i.e. extract) only the files containing &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt; in their file names, deleting them from &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; if successfully copied to &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; --remove-source-files somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
Recreate full path at destination.&amp;lt;ref name=&amp;quot;askubuntu_20141121_rsync-preserve-dirtree&amp;quot;&amp;gt;[https://askubuntu.com/users/193328/jan jan].  ([[2014-11-21]]).  “[https://askubuntu.com/a/552122 Preserve directory tree while copying with rsync]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2024-04-01]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ rsync -avu -R somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
 $ ls anotherpath/DEST/somepath/SOURCE/&lt;br /&gt;
&lt;br /&gt;
=== [[sed]] ===&lt;br /&gt;
[https://www.gnu.org/software/sed/manual/sed.html GNU sed manual].&lt;br /&gt;
&lt;br /&gt;
Replace first instance of a string.&lt;br /&gt;
 $ echo &amp;quot;foo foo&amp;quot; | sed &#039;s/oo/ee/&#039;&lt;br /&gt;
 fee foo&lt;br /&gt;
&lt;br /&gt;
Replace all instances of a string.&lt;br /&gt;
 $ echo &amp;quot;foo foo&amp;quot; | sed &#039;s/oo/ee/g&#039;&lt;br /&gt;
 fee fee&lt;br /&gt;
&lt;br /&gt;
Replace all instances of a string in a file (CAUTION: modifies the file):&lt;br /&gt;
 $ printf &amp;quot;foo\n&amp;quot; &amp;amp;gt; bar.txt&lt;br /&gt;
 $ cat bar.txt&lt;br /&gt;
 foo&lt;br /&gt;
 $ sed -i &#039;s/oo/ee/g&#039; bar.txt&lt;br /&gt;
 $ cat bar.txt&lt;br /&gt;
 fee&lt;br /&gt;
&lt;br /&gt;
Append something to the start of each line ([https://unix.stackexchange.com/a/443150 ref]):&lt;br /&gt;
 $ printf &amp;quot;bar\nbaz\n&amp;quot; | sed &#039;s/^/foo/&#039;&lt;br /&gt;
 foobar&lt;br /&gt;
 foobaz&lt;br /&gt;
 $ printf &amp;quot;bar\nbaz\n&amp;quot; | sed &#039;s~^~foo~&#039;   # use ~ instead of / as regex delimiter&lt;br /&gt;
 foobar&lt;br /&gt;
 foobaz&lt;br /&gt;
&lt;br /&gt;
Delete blank lines. (see [https://unix.stackexchange.com/a/76066/411854 ref])&lt;br /&gt;
 $ printf &amp;quot;foo\n\nbar\n&amp;quot;&lt;br /&gt;
 foo&lt;br /&gt;
 &lt;br /&gt;
 bar&lt;br /&gt;
 $ printf &amp;quot;foo\n\nbar\n&amp;quot; | sed &#039;/^$/d&#039;&lt;br /&gt;
 foo&lt;br /&gt;
 bar&lt;br /&gt;
&lt;br /&gt;
Remove an initial `./` from the start of file lists produced by `find` whether newlines or NULL chars are used as list delimiters. Example: [[sumdir]] v0.1.2&lt;br /&gt;
 $ sed -E &#039;s/(^|\x00)\.\//\1/g&#039;&lt;br /&gt;
&lt;br /&gt;
Print specific lines of a file. (i.e. get a specific line from a file)&lt;br /&gt;
 $ some_command | sed -n &#039;2p&#039;  # prints line 2 of standard input&lt;br /&gt;
 $ sed -n &#039;2p&#039; file.txt        # prints line 2&amp;lt;ref&amp;gt;{{bk}}; [[2024-01-29]]: See https://stackoverflow.com/a/74076669&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sed &#039;2q;d&#039; big_file.txt     # prints line of a very large file.&amp;lt;ref&amp;gt;{{bk}}; [[2024-01-29]]: See https://stackoverflow.com/a/30657175 &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sed -n &#039;2p&#039;&lt;br /&gt;
 $ sed -n &#039;2,5p&#039; file.txt      # prints lines 2 through 5 inclusive.{{bkc|[[2025-04-04]]: Consider using [[#tail]] and [[#head]] &amp;lt;code&amp;gt;$ seq 1 100 &amp;amp;#124; tail -n+50 &amp;amp;#124; head -n4&amp;lt;/code&amp;gt; (get values 50 to 53).}}&lt;br /&gt;
 $ sed -n &#039;2p;5p;&#039; file.txt    # prints only lines 2 and 5.&lt;br /&gt;
&lt;br /&gt;
Substitute special characters&lt;br /&gt;
 $ echo &amp;quot;2 * 5 = 8&amp;quot; | sed -E -e &#039;s/*/x/&#039;    # doesn&#039;t work because asterisk is special regex&lt;br /&gt;
 sed: -e expression #1, char 6: Invalid preceding regular expression&lt;br /&gt;
 $ echo &amp;quot;2 * 5 = 10&amp;quot; | sed -E -e &#039;s/\*/x/&#039;  # works&lt;br /&gt;
&lt;br /&gt;
=== seq ===&lt;br /&gt;
Generate a sequence of integers, newline-delimited.&lt;br /&gt;
 $ seq 1 3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
&lt;br /&gt;
=== sfill ===&lt;br /&gt;
&#039;&#039;Installable via &amp;lt;code&amp;gt;apt install secure-delete&amp;lt;/code&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill all available freespace by writing random noise to a file in directory &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ sfill -ll ./dir/&lt;br /&gt;
&lt;br /&gt;
=== [[shellcheck]] ===&lt;br /&gt;
Delint a shell script.&lt;br /&gt;
 $ shellcheck my_script.sh&lt;br /&gt;
&lt;br /&gt;
=== [[shuf]] ===&lt;br /&gt;
Produce random integers from &amp;lt;code&amp;gt;/dev/random&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Print the numbers 1 through 4 in random order.&lt;br /&gt;
 $ shuf -i1-4&lt;br /&gt;
 4&lt;br /&gt;
 3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
&lt;br /&gt;
Print a random number between 1 and 100.&lt;br /&gt;
 $ shuf -n1 -i1-100&lt;br /&gt;
 40&lt;br /&gt;
&lt;br /&gt;
=== [[ssh]] ===&lt;br /&gt;
Connect to a local machine&#039;s [[Syncthing]] instance via [[firefox]].&lt;br /&gt;
 $ firefox 127.0.0.1:8384&lt;br /&gt;
&lt;br /&gt;
Connect to a remote server&#039;s [[Syncthing]] instance via [[ssh]] port forwarding and [[firefox]].&lt;br /&gt;
 $ ssh -L 127.0.0.1:8388:127.0.0.1:8384 user@hostname&lt;br /&gt;
 $ firefox 127.0.0.1:8388&lt;br /&gt;
&lt;br /&gt;
Get a host&#039;s SSH fingerprint&amp;lt;ref name=&amp;quot;se_20160509_sshkeyscan&amp;quot;&amp;gt;[[Anthony Geoghegan]]. ([[2016-05-09]]). “[https://unix.stackexchange.com/a/268692/411854 Get SSH server key fingerprint]”. Accessed [[2023-06-25]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub&lt;br /&gt;
&lt;br /&gt;
: Get all hostsʼ SSH fingerprints.&lt;br /&gt;
 $ ssh-keygen -lf &amp;lt;(ssh-keyscan localhost 2&amp;gt;/dev/random; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configure [[gnupg]], [[ssh]], and smartcard on [[macOS]]====&lt;br /&gt;
Install necessary [[homebrew]] packages&lt;br /&gt;
 % [[#brew|brew]] update &amp;amp;&amp;amp; brew upgrade;&lt;br /&gt;
 % brew install gnupg pinentry-mac&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ gpg -K&amp;lt;/code&amp;gt; should have a line like this with &amp;lt;code&amp;gt;&amp;amp;#91;A&amp;amp;#93;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ssb&amp;gt;  rsa4096/0x5F9D26B9A598A2D3 2018-05-16 [A] [expires: 2026-07-07]&lt;br /&gt;
&lt;br /&gt;
Configure [[GnuPG]] to use &amp;lt;code&amp;gt;pinentry-mac&amp;lt;/code&amp;gt;&lt;br /&gt;
 % which pinentry;&lt;br /&gt;
 /opt/homebrew/bin/pinentry-mac;&lt;br /&gt;
 % which pinentry-mac &amp;gt;&amp;gt; ~/.gnupg/gpg-agent.conf;&lt;br /&gt;
&lt;br /&gt;
Configure [[GnuPG]] to be able to talk to [[ssh]] by:&lt;br /&gt;
: Adding these lines to &amp;lt;code&amp;gt;~/.gnupg/gpg-agent.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-cache-ttl 300&lt;br /&gt;
max-cache-ttl 999999&lt;br /&gt;
enable-ssh-support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: and exporting these environment variables to your shell (probably &amp;lt;code&amp;gt;~/.[[zsh]]rc&amp;lt;/code&amp;gt; as of [[2024]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export GPG_TTY=&amp;quot;$(tty)&amp;quot;;&lt;br /&gt;
export SSH_AUTH_SOCK=&amp;quot;$(gpgconf --list-dirs agent-ssh-socket)&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Export the [[ssh]] public key from your [[OpenPGP]] key via [[GnuPG]]:&lt;br /&gt;
: Get public key line to add to remote machine&lt;br /&gt;
 $ gpg --export-ssh-key YOUR_KEY_ID &amp;gt; my_gpg_ssh_pubkey.txt&lt;br /&gt;
&lt;br /&gt;
: This should look like:&lt;br /&gt;
 $ cat my_gpg_ssh_pubkey.txt &lt;br /&gt;
 $ ssh-rsa AAAAB3NzaC1yc2EAAAA… user@host&lt;br /&gt;
&lt;br /&gt;
: Add ssh pubkey to remote machine by&lt;br /&gt;
:: running this command remotely (via a preëxisting [[ssh]] session or by visiting the remote machine physically)&lt;br /&gt;
 remote$ echo &amp;quot;ssh-rsa AAAAB3NzaC1yc2EAAAA… user@host&amp;quot; &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
:: or by running this comand locally:&lt;br /&gt;
 $ gpg --export-ssh-key YOUR_KEY_ID | ssh user@remote &#039;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&#039;&lt;br /&gt;
&lt;br /&gt;
Restart [[gnupg]] to apply configuration changes:&lt;br /&gt;
 $ gpgconf --kill gpg-agent;&lt;br /&gt;
 $ gpgconf --launch gpg-agent;&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
 $ ssh user@remote&lt;br /&gt;
&lt;br /&gt;
: If you never have to use the server&#039;s password for the &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; user, then you succeeded.&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|ssh}}&lt;br /&gt;
&lt;br /&gt;
=== [[sort]] ===&lt;br /&gt;
Sort &amp;lt;code&amp;gt;[[du]]&amp;lt;/code&amp;gt; results on human-readable file size of current working directory (non-recursively).&lt;br /&gt;
 $ du -hd1 ./ | sort -hk1&lt;br /&gt;
&lt;br /&gt;
Sort part of a checksum file while ignoring some initial lines (e.g. a checksum file generated by &amp;lt;code&amp;gt;sumdir&amp;lt;/code&amp;gt;). Sorts every line except for the first three lines which it leaves at the top; the output is written to &amp;lt;code&amp;gt;/tmp/0.txt&amp;lt;/code&amp;gt;. Uses the &amp;lt;code&amp;gt;-k2&amp;lt;/code&amp;gt; (i.e. &amp;quot;key 2&amp;quot;) option of &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt; which says to sort by the file name, not the hash (hash is first whitespace-separated entry, file name is the second).&lt;br /&gt;
&lt;br /&gt;
 file=.SUMSHA256--20230126T050458+0000; ( cat &amp;quot;$file&amp;quot; | head -n3; cat &amp;quot;$file&amp;quot; | tail -n+4 | sort -k2; ) &amp;gt; /tmp/0.txt&lt;br /&gt;
&lt;br /&gt;
Sort on the third field of comma-delimited lines&lt;br /&gt;
 $ printf &amp;quot;1,foo,kobo\n2,bar,kaela\n3,baz,zeta\n&amp;quot; | sort -t&#039;,&#039; -k3&lt;br /&gt;
 2,bar,kaela&lt;br /&gt;
 1,foo,kobo&lt;br /&gt;
 3,baz,zeta&lt;br /&gt;
&lt;br /&gt;
Remove duplicate lines without sorted result (preserving first copied unique line). (see [https://stackoverflow.com/a/20639730/10850071 ref])&lt;br /&gt;
 $ myVar=&amp;quot;$( printf &amp;quot;gundam\ninuyasha\ngundam\nbleach\ngundam\nnaruto\ngundam\n&amp;quot; )&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot; | cat -n | sort -uk2 | sort -n | cut -f2-&lt;br /&gt;
 gundam&lt;br /&gt;
 inuyasha&lt;br /&gt;
 bleach&lt;br /&gt;
 naruto&lt;br /&gt;
&lt;br /&gt;
: Preserving last unique copied line.&lt;br /&gt;
 echo &amp;quot;$myVar&amp;quot; | tac | cat -n | sort -uk2 | sort -n | cut -f2- | tac&lt;br /&gt;
 inuyasha&lt;br /&gt;
 bleach&lt;br /&gt;
 naruto&lt;br /&gt;
 gundam&lt;br /&gt;
&lt;br /&gt;
=== [[stdbuf]] ===&lt;br /&gt;
A [[GNU Coreutils]] program that controls how stdin, stdout, and error data is passed in and out of a program.&lt;br /&gt;
&lt;br /&gt;
Read input from &#039;&#039;stdin&#039;&#039; and pass through output to &#039;&#039;stdout&#039;&#039; without any buffering.&amp;lt;ref name=&amp;quot;se_20110619_stdbuf&amp;quot;&amp;gt;[[a3nm]]. ([[2011-06-19]]). “[https://unix.stackexchange.com/a/25378 Turn off buffering in pipe]”. &#039;&#039;Stack Exchange&#039;&#039;. Accessed [[2023-06-06]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ stdbuf -i0 -o0 -e0 command&lt;br /&gt;
&lt;br /&gt;
: Example: Continuously filtering [[journalctl]] output to capture &amp;lt;code&amp;gt;apache-access&amp;lt;/code&amp;gt; lines while discarding the first 7 space-delimited fields of each line. If &#039;&#039;stdbuf&#039;&#039; is not used in this type of scenario, [[tr]] and [[cut]] may fail to immediately display important lines as they arrive from &#039;&#039;journalctl&#039;&#039;, choosing to wait until a buffer is filled before displaying them (defeating the purpose of the &amp;lt;code&amp;gt;--follow&amp;lt;/code&amp;gt; option of &#039;&#039;journalctl&#039;&#039;).&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
journalctl --all --output=short-iso --since=-7d --follow |\&lt;br /&gt;
  grep --line-buffered -Eiv &amp;quot; 404 &amp;quot; |\&lt;br /&gt;
  grep --line-buffered &amp;quot;apache-access&amp;quot; |\&lt;br /&gt;
  stdbuf -i0 -o0 -e0 tr -s &#039; &#039; |\&lt;br /&gt;
  stdbuf -i0 -o0 -e0 cut -d&#039; &#039; -f8- -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[strace]] ===&lt;br /&gt;
Read stderr of a backgrounded and disowned process with process ID &amp;lt;code&amp;gt;pid&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ strace -p &amp;quot;$pid&amp;quot; -e trace=write&lt;br /&gt;
&lt;br /&gt;
=== su ===&lt;br /&gt;
Open shell as another user (if already root) with Bash shell&lt;br /&gt;
 # whoami&lt;br /&gt;
 root&lt;br /&gt;
 # su - www-data -s /bin/bash&lt;br /&gt;
&lt;br /&gt;
=== sudo ===&lt;br /&gt;
Open a shell as root.&lt;br /&gt;
 alice@host: sudo su -&lt;br /&gt;
 root@host: whoami&lt;br /&gt;
 root&lt;br /&gt;
&lt;br /&gt;
Open a &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; shell as another user, e.g. &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;.&lt;br /&gt;
 alice@host: whoami&lt;br /&gt;
 alice&lt;br /&gt;
 alice@host: sudo su - www-data -s /bin/bash&lt;br /&gt;
 [sudo] password for alice:&lt;br /&gt;
 www-data@host: whoami&lt;br /&gt;
 www-data&lt;br /&gt;
&lt;br /&gt;
=== sumdir ===&lt;br /&gt;
A script by [[Christopher Lovejoy]] (used with &amp;lt;code&amp;gt;checkdir&amp;lt;/code&amp;gt;). [https://github.com/monking/shell-utilities/blob/main/sumdir Source at GitHub].&lt;br /&gt;
&lt;br /&gt;
Create checksum of files in working directory recursively, excluding files with names: ending in &amp;lt;code&amp;gt;.asc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ots&amp;lt;/code&amp;gt; and files starting with &amp;lt;code&amp;gt;.SUM&amp;lt;/code&amp;gt;. Resulting file has pattern: &amp;lt;code&amp;gt;.SUM${digest_name}&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;.SUMB2--20230128T013153+0000&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ sumdir -a sha256 -r -x &amp;quot;*.asc&amp;quot; -x &amp;quot;*.ots&amp;quot; -x &amp;quot;.SUM*&amp;quot;&lt;br /&gt;
 $ sumdir -a b2 -r -x &amp;quot;*.asc&amp;quot; -x &amp;quot;*.ots&amp;quot; -x &amp;quot;.SUM*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== swapoff ===&lt;br /&gt;
&#039;&#039;Possibly [[Ubuntu]]-specific&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Temporarily all swap file entries in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.{{bkc|[[2025-01-21]]: Generally, to permanently disable swap, comment out the relevant swap lines in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
 $ sudo swapoff -a&lt;br /&gt;
&lt;br /&gt;
=== [[tail]] ===&lt;br /&gt;
Get last 4 lines of a stdin steam.&lt;br /&gt;
 $ seq 1 10 | tail -n4&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
Get all lines, but start on line 4.&lt;br /&gt;
 $ seq 1 10 | tail -n+4&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
{{Anchor|tail-slice}}{{Anchor|tail-slice-lines}}Get lines 4 through 6.&amp;lt;ref name=&amp;quot;se_20131009_print-lines-tail-head&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/22222/terdon terdon].  ([[2013-10-09]]).  “[https://unix.stackexchange.com/a/94320 Efficient way to print lines from a massive file using awk, sed, or something else?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2025-04-04]].  &amp;lt;/ref&amp;gt; Note: is more efficient than [[#sed|sed]] or [[#awk|awk]] when processing large files.&lt;br /&gt;
 $ seq 1 10 | tail -n+4 | head -n3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
: Get lines 4 through 6 via variables and Bash arithmetic.&lt;br /&gt;
 $ start=4; end=6; seq 1 10 | tail -n+${start} | head -n$((end - start + 1))&lt;br /&gt;
&lt;br /&gt;
{{Anchor|tail-slice-bytes}}Print 4th to 7th bytes of a seekable file. (see [[#head-slice-bytes|#head]] for non-seekable case)&lt;br /&gt;
 $ selStart=$((4-1)); selEnd=$((7-1)); selCount=$((selEnd-selStart+1));&lt;br /&gt;
 $ tail --bytes=+$((selStart+1)) -- foo.txt | head --bytes=$((selCount));  # GNU Coreutils 8.32&lt;br /&gt;
 $ tail -c +$((selStart+1)) -- foo.txt | head -c $((selCount));  # BSD/macOS&lt;br /&gt;
&lt;br /&gt;
=== [[tar]] ===&lt;br /&gt;
&#039;&#039;See [[File compression notes]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;some_dir.rar&amp;lt;/code&amp;gt; out of the contents of the directory &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ tar -cf some_dir.rar some_dir&lt;br /&gt;
&lt;br /&gt;
Extract a compressed archive (e.g. &amp;lt;code&amp;gt;.tar.xz&amp;lt;/code&amp;gt;) in the current working directory.&lt;br /&gt;
 $ tar -xf archive.tar.xz&lt;br /&gt;
&lt;br /&gt;
: Extract to a different directory &amp;lt;code&amp;gt;some/path/&amp;lt;/code&amp;gt;. (The positioning of &amp;lt;code&amp;gt;-C&amp;lt;/code&amp;gt; is important.)&lt;br /&gt;
 $ tar -xf archive.tar.xz -C some/path/&lt;br /&gt;
&lt;br /&gt;
=== tee ===&lt;br /&gt;
Echo stdout to stderr ([https://stackoverflow.com/a/3142166/10850071 ref]):&lt;br /&gt;
 $ echo &amp;quot;This is standard error&amp;quot; | tee /dev/stderr | sed &#039;s/error/out/g&#039;&lt;br /&gt;
 This is standard error&lt;br /&gt;
 This is standard out&lt;br /&gt;
&lt;br /&gt;
=== [[Tesseract (software)|tesseract]] ===&lt;br /&gt;
Install.&lt;br /&gt;
 $ sudo apt install tesseract-ocr&lt;br /&gt;
 $ sudo apt install tesseract-ocr-eng  # english&lt;br /&gt;
 $ sudo apt install tesseract-ocr-osd  # orientation and script detection&lt;br /&gt;
&lt;br /&gt;
Perform English OCR on &amp;lt;code&amp;gt;input.jpg&amp;lt;/code&amp;gt; to create &amp;lt;code&amp;gt;output.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ tesseract input.jpg output -l eng&lt;br /&gt;
&lt;br /&gt;
Perform English OCR but with an image orientation check before.&lt;br /&gt;
 $ tesseract input.jpg output -l osd+eng&lt;br /&gt;
&lt;br /&gt;
Perform English OCR on all &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt; files in the working with 8 CPU cores using [[GNU Parallel]].&lt;br /&gt;
 $ find . -maxdepth 1 -type f -name &amp;quot;*.jpg&amp;quot; | parallel tesseract -j8 &#039;{}&#039; &#039;{.}&#039; -l eng&lt;br /&gt;
: &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to start its search in the working directory&lt;br /&gt;
: &amp;lt;code&amp;gt;-maxdepth 1&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to only search the immediate working directory and not to recursively traverse subdirectories.&lt;br /&gt;
: &amp;lt;code&amp;gt;-type f&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to search for files&lt;br /&gt;
: &amp;lt;code&amp;gt;-name &amp;quot;*.jpg&amp;quot;&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to case-sensitive pattern-match files ending in &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;-j8&amp;lt;/code&amp;gt; specifies 8 CPU threads to be used. Omitting this option causes all available CPU cores to be used.&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{}&#039;&amp;lt;/code&amp;gt; represents a single line received from &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{.}&#039;&amp;lt;/code&amp;gt; represents the same line but with the extension (i.e. &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;) removed.&lt;br /&gt;
&lt;br /&gt;
=== [[top (software)|top]] ===&lt;br /&gt;
View process, sorted by CPU usage&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
Shortcuts&amp;lt;ref name=&amp;quot;transip_2024_linux-top-shortcuts&amp;quot;&amp;gt;“[https://www.transip.eu/knowledgebase/entry/1979-using-the-top-command-linux/ Using the top command in Linux]”.  (n.d.).  &#039;&#039;[[transip.eu]]&#039;&#039;.  Accessed [[2024-01-06]].  [https://web.archive.org/web/20231127225012/https://www.transip.eu/knowledgebase/entry/1979-using-the-top-command-linux/ Archived] from the original on [[2023-11-27]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
* Arrow keys &amp;amp; page up/down: Navigate through the displayed list in the Task area.&lt;br /&gt;
* &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;: Finish the top with the &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;-key.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-p&amp;lt;/code&amp;gt;: Sort the processes by CPU usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-m&amp;lt;/code&amp;gt;: Sort the processes by memory (%MEM) usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-t&amp;lt;/code&amp;gt;: Sort the processes by running-time.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-n&amp;gt;&amp;lt;/code&amp;gt;: Sort the processes by process ID.&lt;br /&gt;
* &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;: Changes the display of the CPU usage in the summary section.&lt;br /&gt;
* &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;: Changes the display of memory usage in the summary section.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-r&amp;lt;/code&amp;gt;: Sort the processes in ascending order instead of descending (default).&lt;br /&gt;
* &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;: By pressing &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;, the &#039;Command&#039; column shows the entire path from which the processes were started.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-v&amp;lt;/code&amp;gt;: Shows the parent / child process hierarchy.&lt;br /&gt;
* &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;: Prompts for a process ID and closes the specified process. By default, SIGTERM is used for a graceful shutdown of the process. For a forced shutdown, you use SIGKILL.&lt;br /&gt;
&lt;br /&gt;
Run top once, printing results to stdout:&lt;br /&gt;
 $ top -n1 -b&lt;br /&gt;
&lt;br /&gt;
=== [[tr]] ===&lt;br /&gt;
Remove &amp;lt;code&amp;gt;# comments&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;input.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ cat input.txt | sed -e &#039;s/[[:blank:]]*#.*//&#039; | tr -s &#039;\n&#039;;&lt;br /&gt;
&lt;br /&gt;
==== Remove unwanted character sets ====&lt;br /&gt;
Keep only printable characters and spaces from a string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
/bin/bash&lt;br /&gt;
name=&amp;quot;message:おはよう　ございます.&amp;quot;;&lt;br /&gt;
name_new=&amp;quot;$( printf &amp;quot;%s&amp;quot; &amp;quot;$name&amp;quot; | tr -dc &#039;[:graph:][:space:]&#039; )&amp;quot;;&lt;br /&gt;
printf &amp;quot;%s\n&amp;quot; &amp;quot;$name&amp;quot;;&lt;br /&gt;
printf &amp;quot;%s\n&amp;quot; &amp;quot;$name_new&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This results in:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
message:おはよう　ございます.&lt;br /&gt;
message:.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[tree (command)]] ===&lt;br /&gt;
Recursively list contents of current working directory.&lt;br /&gt;
 $ tree&lt;br /&gt;
&lt;br /&gt;
: List contents without colorized text.&lt;br /&gt;
 $ tree | ansi2txt&lt;br /&gt;
&lt;br /&gt;
=== unar ===&lt;br /&gt;
Install on a [[Debian]] system via [[apt]].&lt;br /&gt;
 $ sudo apt update &amp;amp;&amp;amp; sudo apt install unar&lt;br /&gt;
&lt;br /&gt;
Decompress a [[rar]] archive.&lt;br /&gt;
 $ unar archive.rar&lt;br /&gt;
&lt;br /&gt;
=== unzip ===&lt;br /&gt;
&#039;&#039;For &amp;lt;code&amp;gt;.rar&amp;lt;/code&amp;gt; files, see [[#unar]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unzip to directory &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ mkdir foo&lt;br /&gt;
 $ unzip -d foo archive.zip&lt;br /&gt;
&lt;br /&gt;
Unzip archives containing file names encoded in non-English encodings:&lt;br /&gt;
: [[Shift JIS]] [[Japanese]] encoding.&amp;lt;ref name=&amp;quot;askubuntu_20170711_unzip-shiftjis&amp;quot;&amp;gt;[https://askubuntu.com/users/4066/nicolas-raoul Nicolas Raoul].  ([[2017-07-11]]).  “[https://askubuntu.com/a/935023 How to unzip a Japanese ZIP file, and avoid mojibake/garbled characters]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2024-04-12]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ unzip -O shift-jis archive.zip&lt;br /&gt;
: [[Simplified Chinese characters]] encoding.&lt;br /&gt;
 $ unzip -O gb18030 archive.zip  # [[GB 18030]] is a superset of [[GBK]]. Try this first.&lt;br /&gt;
 $ unzip -O gbk archive.zip      # [[GBK (character encoding)|GBK]] an extension of [[GB 2312]].&lt;br /&gt;
 $ unzip -O gb2312 archive.zip   # [[GB 2312]] deprecated in 2017&lt;br /&gt;
: [[Big5]] [[Traditional Chinese characters]] encoding.&lt;br /&gt;
 $ unzip -O big5 archive.zip&lt;br /&gt;
&lt;br /&gt;
=== [[veracrypt]] ===&lt;br /&gt;
Mount a volume.&lt;br /&gt;
 $ veracrypt volume.hc&lt;br /&gt;
&lt;br /&gt;
Unmount all volumes.&lt;br /&gt;
 $ veracrypt -d&lt;br /&gt;
: If you get an error message resembling &amp;lt;code&amp;gt;Error: umount: /media/veracrypt1: target is busy&amp;lt;/code&amp;gt;, then identify the offending process with [[lsof]]&amp;lt;ref name=&amp;quot;so_20111024_unmountbusydev&amp;quot;&amp;gt;[[Frank Tudor|Tudor, Frank]].  ([[2011-10-24]]).  “[https://stackoverflow.com/a/7878763 How to unmount a busy device [closed]]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2023-07-25]].  [https://web.archive.org/web/20230620181852/https://stackoverflow.com/questions/7878707/how-to-unmount-a-busy-device/7878763#7878763 Archived] from the original on [[2023-06-20]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ lsof | grep &#039;/media/veracrypt1&#039;&lt;br /&gt;
&lt;br /&gt;
Unmount a specific volume.&lt;br /&gt;
 $ veracrypt -d volume.hc&lt;br /&gt;
&lt;br /&gt;
Create a volume.&lt;br /&gt;
 $ veracrypt -t -c&lt;br /&gt;
&lt;br /&gt;
=== watch ===&lt;br /&gt;
Perform a command repeatedly and print its output.&lt;br /&gt;
&lt;br /&gt;
Print free disk space (&amp;lt;code&amp;gt;df&amp;lt;/code&amp;gt;) in bytes (&amp;lt;code&amp;gt;-B1&amp;lt;/code&amp;gt;) every second (&amp;lt;code&amp;gt;-n1&amp;lt;/code&amp;gt;), highlighting changes &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ watch -d -n1 df -B1&lt;br /&gt;
&lt;br /&gt;
=== [[wc]] ===&lt;br /&gt;
Word count. Part of GNU Coreutils 8.32.&lt;br /&gt;
&lt;br /&gt;
Count bytes in a file named &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ wc -c foo.txt&lt;br /&gt;
 20087&lt;br /&gt;
&lt;br /&gt;
Count the bytes in the file name &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt; (with an off-by-one error due to Bash adding a trailing newline character).&lt;br /&gt;
 $ wc -c &amp;lt;&amp;lt;&amp;lt; &amp;quot;foo.txt&amp;quot;&lt;br /&gt;
 8&lt;br /&gt;
&lt;br /&gt;
Count the bytes in the file name &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ filename=&amp;quot;foo.txt&amp;quot;; printf &amp;quot;%s&amp;quot; &amp;quot;$filename&amp;quot; | wc -c&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
=== [[wondershaper]] ===&lt;br /&gt;
Limit bandwidth of network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;{{bk}}: [[2024-01-12]]: Network interfaces and [[DHCP]]-assigned [[IP address]]es can be listed via &amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt;.&amp;lt;/ref&amp;gt; to 5000kbps download and 1000kbps upload.&lt;br /&gt;
 $ wondershaper eth0 5000 1000&lt;br /&gt;
&lt;br /&gt;
Clear [[wondershaper]] limits.&lt;br /&gt;
 $ wondershaper clear&lt;br /&gt;
&lt;br /&gt;
=== [[yt-dlp]] ===&lt;br /&gt;
&#039;&#039;For all options, see [[yt-dlp]] GitHub page [https://github.com/yt-dlp/yt-dlp here].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See example wrapper script [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/107b9c5341a52d03350d698b5ec42e26d810a93c/user/bkytpldl-generic here (&amp;lt;code&amp;gt;bkytpldl-generic&amp;lt;/code&amp;gt; v4.1.1)].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay between downloads&lt;br /&gt;
 $ yt-dlp --sleep-requests 2&lt;br /&gt;
&lt;br /&gt;
Remember downloaded videos to avoid redownload attempts.&lt;br /&gt;
 $ yt-dlp --download-archive some/path/history.txt &amp;quot;$URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Randomize order in which playlist items are downloaded.&lt;br /&gt;
 $ yt-dlp --playlist-random &amp;quot;$URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Handle &amp;lt;code&amp;gt;File name too long&amp;lt;/code&amp;gt; error by limiting long fields by byte count.&amp;lt;ref name=&amp;quot;ytdlp_2021_long-filename&amp;quot;&amp;gt;[[tylerszabo]]. ([[2021-10-01]]). “[https://github.com/yt-dlp/yt-dlp/issues/1136  [Feature request] Handle Long filenames in default template and temporary files #1136]”.  &#039;&#039;[[github.com]]&#039;&#039;, [[yt-dlp]].  Accessed [[2024-07-25]].  “&amp;lt;code&amp;gt;$ yt-dlp -o &#039;%(title).200B.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;&amp;lt;/code&amp;gt;”.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ yt-dlp -o &#039;%(title).140B.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;  # limits title to 140 bytes&lt;br /&gt;
 $ yt-dlp -o &#039;%(title)s.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;      # may fail if title too long&lt;br /&gt;
&lt;br /&gt;
Download lowest quality.&amp;lt;ref name=&amp;quot;su_20210806_ytdlp-lowest-quality&amp;quot;&amp;gt;[https://superuser.com/users/1052727/sherman Sherman].  ([[2021-08-06]]).  “[https://superuser.com/a/1667932/1142336 Download the lowest quality video with youtube-dl]”.  &#039;&#039;[[superuser.com]]&#039;&#039;.  Accessed [[2024-02-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ yt-dlp -S &#039;+size,+br&#039;&lt;br /&gt;
&lt;br /&gt;
Write automatic subtitles of a [[YouTube]] video to a &amp;lt;code&amp;gt;.vtt&amp;lt;/code&amp;gt; file:&lt;br /&gt;
 $ yt-dlp --write-subs --write-auto-subs https://www.youtube.com/watch?v=bbkUn0o3L1Y&lt;br /&gt;
&lt;br /&gt;
: Parse such a &amp;lt;code&amp;gt;.vtt&amp;lt;/code&amp;gt; file in order to extract the text (reading every 8th line with an offset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;clear; offset=1; cycle=8; n=0; {&lt;br /&gt;
  while read -r line; do&lt;br /&gt;
    if [[ ! $((n % cycle)) -eq &amp;quot;$offset&amp;quot; ]]; then&lt;br /&gt;
      ((n++)); continue; fi;&lt;br /&gt;
    printf &amp;quot;%s\n&amp;quot; &amp;quot;$line&amp;quot;;&lt;br /&gt;
    ((n++));&lt;br /&gt;
  done &amp;amp;lt; Unicode\ and\ Byte\ Order\ \[bbkUn0o3L1Y\].en.vtt;&lt;br /&gt;
  echo &amp;quot;STATUS:Done.&amp;quot; 1&amp;gt;&amp;amp;2;&lt;br /&gt;
} | grep -v &amp;quot;^$&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[xargs]] ===&lt;br /&gt;
Break up many lines into groups to avoid [[xargs]] limits on argument counts and maximum command lengths.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
bite=100;  # group size  ADJUST ME&lt;br /&gt;
n=1;  # initialize loop counter&lt;br /&gt;
declare -a buffer;  # initialize line group&lt;br /&gt;
&lt;br /&gt;
# Populate and process full groups.&lt;br /&gt;
while read -r line; do&lt;br /&gt;
  buffer+=(&amp;quot;$line&amp;quot;);&lt;br /&gt;
  if [[ $(( n % bite )) -eq 0 ]]; then&lt;br /&gt;
    printf &amp;quot;%s\n&amp;quot; &amp;quot;${buffer[@]}&amp;quot; | xargs echo;  # ADJUST ME  replace &#039;echo&#039; with your command  &lt;br /&gt;
    unset buffer;&lt;br /&gt;
    sleep 1;  # throttle&lt;br /&gt;
  fi;&lt;br /&gt;
  ((n++));&lt;br /&gt;
done &amp;lt; &amp;lt;(seq 1 1000);  # ADJUST ME  replace with command that generates many lines  &lt;br /&gt;
&lt;br /&gt;
# Handle final partially filled group.&lt;br /&gt;
if [[ &amp;quot;${#buffer[@]}&amp;quot; -gt 0 ]]; then&lt;br /&gt;
  printf &amp;quot;%s\n&amp;quot; &amp;quot;${buffer[@]}&amp;quot; | xargs echo;  # ADJUST ME  replace &#039;echo&#039; with your command&lt;br /&gt;
fi;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert several lines of [[stdin]] into words. This may be useful if a command needs to perform an operation on all items in a long [[newline-delimited]] [[list]] as [[argument]] [[parameters]] instead of [[standard input]]. The following expressions are equivalent calls of [[ls]] to list the files &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;baz&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $ printf &amp;quot;foo\nbar\nbaz\n&amp;quot; | xargs -d &#039;\n&#039; ls -alh;&lt;br /&gt;
 $ ls -alh foo bar baz;&lt;br /&gt;
: Note: &amp;lt;code&amp;gt;-d &#039;\n&#039;&amp;lt;/code&amp;gt; requires that only [[newlines]] are used to separate (i.e. [[delimiter|delimit]]) arguments. The &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; option is necessary in newline-delimited lists because &amp;lt;code&amp;gt;xargs&amp;lt;/code&amp;gt; will split lines on [[whitespace characters]] such as the [[space character]]. For example, &amp;lt;code&amp;gt;printf &amp;quot;1 qux\n2 quux\n3 corge\n&amp;quot; | xargs -d &#039;\n&#039; ls -alh;&amp;lt;/code&amp;gt; will not apply &amp;lt;code&amp;gt;ls -alh&amp;lt;/code&amp;gt; to the three files &amp;lt;code&amp;gt;1 qux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2 quux&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;3 corge&amp;lt;/code&amp;gt;, but instead will erroneously use six other files &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;qux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;quux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;corge&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[zip]] ===&lt;br /&gt;
Compress a directory &amp;lt;code&amp;gt;my_dir&amp;lt;/code&amp;gt; into a zip archive &amp;lt;code&amp;gt;my_dir.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ dir_in=./my_dir; zip_out=&amp;quot;${dir_in}.zip&amp;quot;; zip -r &amp;quot;$zip_out&amp;quot; &amp;quot;$dir_in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{refsec}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Command line]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Kitty&amp;diff=198201</id>
		<title>Kitty</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Kitty&amp;diff=198201"/>
		<updated>2026-05-12T00:14:57Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Kitty&amp;#039;&amp;#039;&amp;#039; is a GPU-accelerated terminal emulator available in the Debian repository.    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}}...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Kitty&#039;&#039;&#039; is a GPU-accelerated terminal emulator available in the [[Debian]] repository.    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==Setup notes==&lt;br /&gt;
&#039;&#039;kitty&#039;&#039; is a [[Debian]] package available in most repositories.&lt;br /&gt;
 $ sudo apt install kitty&lt;br /&gt;
&lt;br /&gt;
Make sure to install the &#039;&#039;kitty-terminfo&#039;&#039; package on remote systems being SSH&#039;d into via &#039;&#039;kitty&#039;&#039; in order to allow control signals (e.g. arrow key movement) to work correctly. (see [https://sw.kovidgoyal.net/kitty/faq/#i-get-errors-about-the-terminal-being-unknown-or-opening-the-terminal-failing-or-functional-keys-like-arrow-keys-don-t-work ref])&lt;br /&gt;
 $ ssh username@server&lt;br /&gt;
 $ sudo apt install kitty-terminfo&lt;br /&gt;
&lt;br /&gt;
==Shortcuts==&lt;br /&gt;
; Ctrl+Shift+Esc&lt;br /&gt;
: Opens &#039;&#039;kitty shell&#039;&#039; which allows kitty-specific commands to be run, changing kittyʼs behavior. (e.g. &amp;lt;code&amp;gt;close-tab&amp;lt;/code&amp;gt; to close an unresponsive tab).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:kitty (terminal emulator)]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FOSS software]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Baltakatei%27s_Useful_CLI_Commands&amp;diff=198200</id>
		<title>Baltakatei&#039;s Useful CLI Commands</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Baltakatei%27s_Useful_CLI_Commands&amp;diff=198200"/>
		<updated>2026-05-08T18:26:05Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: /* rsync */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly [[Debian]] GNU/Linux command line interface commands.&lt;br /&gt;
&lt;br /&gt;
For [[Windows NT|Windows]], see [[Powershell notes]].    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==Commands==&lt;br /&gt;
===Linux kernel stuff===&lt;br /&gt;
Flush cache.&amp;lt;ref&amp;gt;[https://unix.stackexchange.com/users/542349/pavan pavan].  ([[2022-09-22]]).  “[https://unix.stackexchange.com/a/718217 Setting /proc/sys/vm/drop_caches to clear cache]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-09-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo sh -c &amp;quot;sync; echo 3 &amp;gt; /proc/sys/vm/drop_caches&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[ansi2txt]]===&lt;br /&gt;
Part of the [[colorized-logs]] [[Debian]] package.&lt;br /&gt;
&lt;br /&gt;
Remove color codes from text.&amp;lt;ref&amp;gt;https://stackoverflow.com/a/67316339/10850071&amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ ansi2txt &amp;lt; ./input.txt &amp;gt; ./output.txt&lt;br /&gt;
  $ cat input.txt | ansi2txt &amp;gt; output.txt  # alternate method with pipes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[[grep]]&amp;lt;/code&amp;gt; example that searches file.txt, highlighting “2023” in color.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
  $ grep --color=always -- &amp;quot;2023&amp;quot; file.txt                           # view with color&lt;br /&gt;
  $ grep --color=always -- &amp;quot;2023&amp;quot; file.txt &amp;gt; results_color.txt       # store with color-codes&lt;br /&gt;
  $ ansi2txt &amp;lt; ./results_color.txt &amp;gt; ./results_nocolor.txt           # strip color codes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===apt===&lt;br /&gt;
Show details of any package, installed or not.&lt;br /&gt;
 $ apt show &amp;amp;#91;package-name&amp;amp;#93;&lt;br /&gt;
 $ apt show gpg  # example&lt;br /&gt;
&lt;br /&gt;
Check which packages depend on package &amp;lt;code&amp;gt;package-name&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;askubuntu_20181126_rdepends&amp;quot;&amp;gt;[[Corrado Topi]].  ([[2018-11-26]]).  “[https://askubuntu.com/a/1096318 How to list dependent packages (reverse dependencies)?]”.  &#039;&#039;askubuntu.com&#039;&#039;.  Accessed [[2023-07-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ apt rdepends package-name&lt;br /&gt;
&lt;br /&gt;
Install upgrades without prompts&amp;lt;ref&amp;gt;https://unix.stackexchange.com/a/314281/411854&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
===base64===&lt;br /&gt;
Calculate [[MD5]] [[checksum]] of a binary file.&amp;lt;ref&amp;gt;{{bk}}: [[2024-01-12]]: Note, &amp;lt;code&amp;gt;md5&amp;lt;/code&amp;gt; may be replaced with &amp;lt;code&amp;gt;sha256&amp;lt;/code&amp;gt; to get a [[SHA-256]] digest.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ openssl md5 -binary foo.txt | base64  # with [[openssl]] and [[base64]]&lt;br /&gt;
 $ md5sum --binary foo.txt | cut -d&#039; &#039; -f1 | xxd -r -p | base64  # with [[md5sum]], [[xxd]] and [[base64]]&amp;lt;ref name=&amp;quot;se_20101101_base64-xxd&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/1946/alex alex]  ([[2010-11-01]]).  “[https://unix.stackexchange.com/a/3678/ How can I get a base64 encoded shaX on the cli?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-01-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
[https://www.gnu.org/software/bash/manual/bash.html Manual].&lt;br /&gt;
&lt;br /&gt;
Check if &amp;lt;code&amp;gt;$stringA&amp;lt;/code&amp;gt; comes alphabetically before &amp;lt;code&amp;gt;$stringB&amp;lt;/code&amp;gt; using current locale.&lt;br /&gt;
 $ if [[ &amp;quot;$stringA&amp;quot; &amp;lt; &amp;quot;$stringB&amp;quot; ]]; then echo true; else echo false; fi;&lt;br /&gt;
&lt;br /&gt;
Search &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; results with &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; using the exit code from a statement evaluated by the built-in &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ mkdir a;&lt;br /&gt;
 $ touch ./a/foo.txt&lt;br /&gt;
 $ touch ./a/bar.txt&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;foo&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found:&lt;br /&gt;
 ./a/foo.txt&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;baz&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found nothing.&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;.txt$&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found:&lt;br /&gt;
 ./a/bar.txt&lt;br /&gt;
 ./a/foo.txt&lt;br /&gt;
&lt;br /&gt;
Use modulo integer math to print the integers between 0 and 100 that are divisible by 5.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 for ((i=0; i&amp;amp;lt;=100; i++)); do&lt;br /&gt;
   if [ $((i % 5)) -eq 0 ]; then&lt;br /&gt;
     echo $i&lt;br /&gt;
   fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Count the number of occurrences of a single ASCII character (e.g. &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;) (see [https://stackoverflow.com/a/16679640 ref])&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 var=&amp;quot;text,text,text,text&amp;quot;&lt;br /&gt;
 res=&amp;quot;${var//[^,]}&amp;quot;&lt;br /&gt;
 echo &amp;quot;$res&amp;quot;&lt;br /&gt;
 echo &amp;quot;${#res}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Quotation rules====&lt;br /&gt;
How to insert a single apostrophe into an already single-apostrophe-quoted string.&lt;br /&gt;
 $ echo &amp;quot;You can&#039;t do it easily&amp;quot; | sed -E -e &#039;s/can&#039;\&#039;&#039;t/can/&#039;  # sed example&lt;br /&gt;
 You can do it easily.&lt;br /&gt;
&lt;br /&gt;
====Bash input/output====&lt;br /&gt;
Provide string to a command via stdin. The following are equivalent.&lt;br /&gt;
 $ echo &amp;quot;666&amp;quot; | sed &#039;s/6/7/g&#039;;              # Uses pipe format.&lt;br /&gt;
 777&lt;br /&gt;
 $ myVar=&amp;quot;666&amp;quot;; sed &#039;s/6/7/g &amp;lt;&amp;lt;&amp;lt; &amp;quot;$myVar&amp;quot;;  # Uses “here string” format.&amp;lt;ref&amp;gt;See https://www.gnu.org/software/bash/manual/bash.html#Here-Strings .&amp;lt;/ref&amp;gt;&lt;br /&gt;
 777&lt;br /&gt;
&lt;br /&gt;
Supply the first line of a text file as an argument.&lt;br /&gt;
 $ fpass=/dev/shm/password.txt;           # create file&lt;br /&gt;
 $ touch &amp;quot;$fpass&amp;quot; &amp;amp;&amp;amp; chmod 700 &amp;quot;$fpass&amp;quot;;  # set to user-only permission&lt;br /&gt;
 $ echo &amp;quot;hunter2&amp;quot; &amp;gt; &amp;quot;$fpass&amp;quot;;             # save password to file&lt;br /&gt;
 $ echo &amp;quot;$(head -n1 &amp;quot;$fpass&amp;quot;)&amp;quot;;     # read contents of file as argument&lt;br /&gt;
&lt;br /&gt;
====Bash job management====&lt;br /&gt;
&#039;&#039;See https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Job-Control &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Push job into background.&lt;br /&gt;
 ^Z   # (i.e. Ctrl-Z)&lt;br /&gt;
 [1]+ Stopped     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a&lt;br /&gt;
&lt;br /&gt;
Get a list of current background jobs&lt;br /&gt;
 $ jobs&lt;br /&gt;
 [1]+ Stopped     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a&lt;br /&gt;
&lt;br /&gt;
Restart a job (e.g. one with &amp;lt;code&amp;gt;jobspec&amp;lt;/code&amp;gt; 1) in the background and check that it is running.&lt;br /&gt;
 $ bg 1&lt;br /&gt;
 [1]+ git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a &amp;amp;&lt;br /&gt;
 $ jobs&lt;br /&gt;
 [1]+ Running     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Detach a job (e.g. one with &amp;lt;code&amp;gt;jobspec&amp;lt;/code&amp;gt; 1) from the current shell to permit safe exit without terminating the job.&lt;br /&gt;
 $ disown %1&lt;br /&gt;
&lt;br /&gt;
====Bash string manipulation====&lt;br /&gt;
&#039;&#039;See [https://tldp.org/LDP/abs/html/string-manipulation.html Manipulating Strings].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;lt;code&amp;gt;${parameter}&amp;lt;/code&amp;gt; syntax invokes what is known as “Parameter Expansion”.&amp;lt;ref name=&amp;quot;gnu_2025_shell-param-exp&amp;quot;&amp;gt;&lt;br /&gt;
“[https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html Bash Features: 3.5.3 Shell Parameter Expansion]”. (n.d.). &#039;&#039;[[gnu.org]]&#039;&#039;.  Accessed [[2025-10-21]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace substring in variable.&amp;lt;ref name=&amp;quot;cooper_20140310_bash-strings&amp;quot;&amp;gt;[[Mendel Cooper]].  ([[2014-03-10]]).  “[https://tldp.org/LDP/abs/html/string-manipulation.html Advanced Bash-Scripting Guide: 10. Manipulating Strings]”.  &#039;&#039;[[tldp.org]]&#039;&#039;.  Accessed [[2024-02-12]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ myVar=&amp;quot;foobarbaz&amp;quot;;&lt;br /&gt;
$ echo &amp;quot;${myVar/bar/qux}&amp;quot;;&lt;br /&gt;
fooquxbaz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get first 7 characters of a string.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:0:7}&amp;quot;  # i.e. starting with character &#039;0&#039;, print &#039;7&#039; characters&lt;br /&gt;
 deadbee&lt;br /&gt;
&lt;br /&gt;
Print substring by specifying index and desired substring length.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:4:3}&amp;quot;  # i.e. starting with character &#039;4&#039;, print &#039;3&#039; characters&lt;br /&gt;
 bee&lt;br /&gt;
&lt;br /&gt;
Get last 4 characters of a string.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:(-4)}&amp;quot;;&lt;br /&gt;
 beef&lt;br /&gt;
&lt;br /&gt;
Lowercase characters in a variable&lt;br /&gt;
 $ myVar=&amp;quot;fooBARbaz&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar,,}&amp;quot;;&lt;br /&gt;
 foobarbaz&lt;br /&gt;
&lt;br /&gt;
Remove shortest matching pattern (e.g. &amp;lt;code&amp;gt;bar*&amp;lt;/code&amp;gt;) from end of variable.&lt;br /&gt;
 $ myVar=&amp;quot;foobarbar&amp;quot;; myVar2=&amp;quot;${myVar%bar*}&amp;quot;; declare -p myVar myVar2&lt;br /&gt;
 declare -- myVar=&amp;quot;foobarbar&amp;quot;&lt;br /&gt;
 declare -- myVar2=&amp;quot;foobar&amp;quot;    # only one &#039;bar&#039; removed&lt;br /&gt;
&lt;br /&gt;
Remove longest matching pattern (e.g. &amp;lt;code&amp;gt;bar*&amp;lt;/code&amp;gt;) from end of variable.&lt;br /&gt;
 $ myVar=&amp;quot;foobarbar&amp;quot;; myVar2=&amp;quot;${myVar%%bar*}&amp;quot;; declare -p myVar myVar2&lt;br /&gt;
 declare -- myVar=&amp;quot;foobarbar&amp;quot;&lt;br /&gt;
 declare -- myVar2=&amp;quot;foo&amp;quot;       # all the &#039;bar&#039;ʼs removed&lt;br /&gt;
&lt;br /&gt;
: Works with array parameter expansion too.&lt;br /&gt;
 $ myVar=&amp;quot;$(printf &amp;quot;foo\tbar\tbaz\n&amp;quot;)&amp;quot;; myArr[3]=&amp;quot;$myVar&amp;quot;; echo &amp;quot;${myArr[3]}&amp;quot;;&lt;br /&gt;
 foo	bar	baz&lt;br /&gt;
 $ echo &amp;quot;${myArr[3]%$&#039;\t&#039;*}&amp;quot;;  # cutoff starts at last tab &#039;\t&#039;&lt;br /&gt;
 foo	bar&lt;br /&gt;
 $ echo &amp;quot;${myArr[3]%%$&#039;\t&#039;*}&amp;quot;  # cutoff starts at first tab &#039;\t&#039;&lt;br /&gt;
 foo&lt;br /&gt;
&lt;br /&gt;
====Array manipulation====&lt;br /&gt;
Declare an array. (usually not needed, but good practice; not an “associative array”)&lt;br /&gt;
 $ declare -a my_array&lt;br /&gt;
&lt;br /&gt;
Store lines into an array. (Requires [[Bash]] version 4 or above)&lt;br /&gt;
 $ mapfile -t my_array &amp;lt; &amp;lt;(find &amp;quot;$HOME&amp;quot; -type f)  # store file list&lt;br /&gt;
 $ mapfile -t my_array &amp;lt; &amp;lt;(seq 1 10)              # store the integers 1 through 10&lt;br /&gt;
&lt;br /&gt;
Store lines into an array without &amp;lt;code&amp;gt;mapfile&amp;lt;/code&amp;gt; and process substitution (&amp;lt;code&amp;gt;&amp;lt; &amp;lt;(...)&amp;lt;/code&amp;gt;); compatible with Bash 3.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while IFS=&#039;&#039; read -r line; do&lt;br /&gt;
  my_array+=(&amp;quot;$line&amp;quot;);&lt;br /&gt;
done &amp;lt; &amp;lt;(find &amp;quot;$HOME&amp;quot; -type f);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check contents of an array in verbose style. (or any Bash variable)&lt;br /&gt;
 $ declare -p my_array&lt;br /&gt;
&lt;br /&gt;
Get count of array elements. (works even after you &amp;lt;code&amp;gt;unset&amp;lt;/code&amp;gt; an array element)&lt;br /&gt;
 $ echo &amp;quot;${#my_array[@]}&amp;quot;  # note the “#”&lt;br /&gt;
&lt;br /&gt;
Get array indices (each array element as a word; useful for &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loops)&lt;br /&gt;
 $ echo &amp;quot;${!my_array[@]}&amp;quot;  # note the “!”&lt;br /&gt;
&lt;br /&gt;
View a particular element of an array by index (Note: zero-indexed)&lt;br /&gt;
 $ printf &amp;quot;%s\n&amp;quot; &amp;quot;${my_array[1]}&amp;quot;  # display second element&lt;br /&gt;
 $ echo &amp;quot;${my_array[1]}&amp;quot;           # mostly the same, but beware special escaped character cases&lt;br /&gt;
&lt;br /&gt;
View all elements of an array, printing one line per array element.&lt;br /&gt;
 $ printf &amp;quot;%s\n&amp;quot; &amp;quot;${my_array[@]}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Act on each array element sequentially in a &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
for i in &amp;quot;${!my_array[@]}&amp;quot;; do&lt;br /&gt;
  printf &amp;quot;%s\n&amp;quot; &amp;quot;Checking element ${i} of ${#my_array[@]}.&amp;quot;;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove a particular array element by index.&lt;br /&gt;
 $ unset my_array[1]  # remove second element.&lt;br /&gt;
&lt;br /&gt;
Declare an associative array. (i.e. an array that uses strings as indices)&lt;br /&gt;
 $ declare -A myaa  #みゃあ&lt;br /&gt;
&lt;br /&gt;
Add an element to an associative array. (various styles)&lt;br /&gt;
 $ myaa[&amp;quot;september&amp;quot;]=&amp;quot;7&amp;quot;;&lt;br /&gt;
 $ myaa[&amp;quot;october&amp;quot;]=8;&lt;br /&gt;
 $ my_month=&amp;quot;december&amp;quot;; my_var=&amp;quot;10&amp;quot;; myaa[&amp;quot;${my_month}&amp;quot;]=&amp;quot;${my_var}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Check contents of an associative array (same as for any Bash array)&lt;br /&gt;
 $ declare -p myaa&lt;br /&gt;
 $ declare -p my_array myaa  # check two variables at the same time&lt;br /&gt;
&lt;br /&gt;
====Iteration statements====&lt;br /&gt;
Typical &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop that checks &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; first then performs &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; until &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while condition; do&lt;br /&gt;
  body;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emulate a &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop {{bkc|[[2025-10-11]]: Not compatible with &amp;lt;code&amp;gt;set -e&amp;lt;/code&amp;gt; error-handling which is supposed to end Bash script execution if any line fails. }} that initially performs &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; at least once before checking &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt;. Repeats &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; until &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;so_20140626_bash-do-while&amp;quot;&amp;gt;[https://stackoverflow.com/users/1899640/that-other-guy that other guy].  ([[2014-06-26]]).  “[https://stackoverflow.com/a/24421013 Is there a do-while loop in bash?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2025-10-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while&lt;br /&gt;
  body;&lt;br /&gt;
  condition;&lt;br /&gt;
do true; done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emulate a &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop with &amp;lt;code&amp;gt;set -e&amp;lt;/code&amp;gt; error-handling support:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while true; do&lt;br /&gt;
  body;&lt;br /&gt;
  condition || break;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[bc]]===&lt;br /&gt;
Evaluate math expressions&lt;br /&gt;
 $ echo &amp;quot;scale=12; 1 / 1.61803398875&amp;quot; | bc -l  # division with 12 decimal places&lt;br /&gt;
 .618033988749&lt;br /&gt;
 $ echo &amp;quot;scale=6; l(2.718281)&amp;quot; | bc -l  # logarithm with only 6 decimal places&lt;br /&gt;
 .999999&lt;br /&gt;
&lt;br /&gt;
===brew===&lt;br /&gt;
[[Homebrew (package manager)|Homebrew]] is a package manager for [[macOS]].&lt;br /&gt;
&lt;br /&gt;
Install via script and [[curl]] (simple, but sketchy method available at https://brew.sh ):&lt;br /&gt;
 $ /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Update packages&lt;br /&gt;
 $ brew update&lt;br /&gt;
&lt;br /&gt;
Get info on a package&lt;br /&gt;
 $ brew info coreutils&lt;br /&gt;
&lt;br /&gt;
Install a package&lt;br /&gt;
 $ brew install coreutils&lt;br /&gt;
&lt;br /&gt;
Test package commands&lt;br /&gt;
 $ gdate -Is  # Equivalent to Debian 12 `$ date -Is`.&lt;br /&gt;
 2024-10-08T20:03:18+00:00&lt;br /&gt;
&lt;br /&gt;
===calibredb===&lt;br /&gt;
Command-line interface for [[ebook]] manager [[Calibre]]&lt;br /&gt;
&lt;br /&gt;
List all books in &amp;lt;code&amp;gt;author; title&amp;lt;/code&amp;gt; format with [[jq]].&lt;br /&gt;
 $ calibredb list --for-machine | jq -r &#039;.[] | &amp;quot;\(.authors); \(.title)&amp;quot; &#039; | sort&lt;br /&gt;
&lt;br /&gt;
===chmod===&lt;br /&gt;
References:&lt;br /&gt;
* https://www.pluralsight.com/blog/it-ops/linux-file-permissions&lt;br /&gt;
* https://linuxconfig.org/chmod&lt;br /&gt;
&lt;br /&gt;
Remove read, write, and execute permissions for &#039;&#039;others&#039;&#039; to a file or directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chmod o-rwx foo&lt;br /&gt;
&lt;br /&gt;
Add read and execute permissions for &#039;&#039;group&#039;&#039; to a file or directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chmod g+rx foo&lt;br /&gt;
&lt;br /&gt;
Make all &#039;&#039;directories&#039;&#039; openable (i.e. executable) by &#039;&#039;user&#039;&#039; starting at a directory named &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # find ./bar -type d -exec chmod u+x \;&lt;br /&gt;
&lt;br /&gt;
Make all &#039;&#039;files&#039;&#039; non-executable by everyone within a directory named &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # find ./bar -type f -exec chmod ugo-x \;&lt;br /&gt;
 # find ./bar -type f -exec chmod -x \;&lt;br /&gt;
&lt;br /&gt;
Make a file named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; executable for &#039;&#039;user&#039;&#039;, &#039;&#039;group&#039;&#039;, and &#039;&#039;others&#039;&#039; (i.e. everyone).&lt;br /&gt;
 # chown +x foo&lt;br /&gt;
&lt;br /&gt;
===choom===&lt;br /&gt;
Get OOM score for process with PID &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ choom --pid 1&lt;br /&gt;
&lt;br /&gt;
List the bottom 50 processes in the OOM priority list (during low memory, the bottom is killed first).&lt;br /&gt;
 $ printf &amp;quot;pid,ooms,name\n&amp;quot;; while read -r line; do pid=&amp;quot;$(echo &amp;quot;$line&amp;quot; | cut -d&#039; &#039; -f2)&amp;quot;; name=&amp;quot;$(echo &amp;quot;$line&amp;quot; | cut -d&#039; &#039; -f11-)&amp;quot;; ooms=&amp;quot;$(choom -p &amp;quot;$pid&amp;quot; | grep -Eo &amp;quot;[0-9]+$&amp;quot; | head -n1)&amp;quot;; printf &amp;quot;%9d,%4d,%s\n&amp;quot; &amp;quot;$pid&amp;quot; &amp;quot;$ooms&amp;quot; &amp;quot;$name&amp;quot;; done &amp;lt; &amp;lt;(ps aux | tr -s &#039; &#039; | tail -n+2) | sort -k2 | tail -n50&lt;br /&gt;
&lt;br /&gt;
===chown===&lt;br /&gt;
Change ownership of a file or directory named &amp;lt;code&amp;gt;baz&amp;lt;/code&amp;gt; to &#039;&#039;user&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt; and &#039;&#039;group&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chown debuser:debuser baz&lt;br /&gt;
&lt;br /&gt;
Change ownership of all files and directories contained within the directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; to &#039;&#039;user&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt; and &#039;&#039;group&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
 root@h: chown -R debuser:debuser foo&lt;br /&gt;
&lt;br /&gt;
===[[chrony]]===&lt;br /&gt;
The following commands assume the package [[chrony]] is installed.&lt;br /&gt;
&lt;br /&gt;
Get a list of NTP refclocks being used to adjust local time:&lt;br /&gt;
 $ chronyc sources&lt;br /&gt;
&lt;br /&gt;
Get current machine&#039;s statistics (e.g. get Frequency or how slow or fast local clock is)&lt;br /&gt;
 $ chronyc tracking&lt;br /&gt;
&lt;br /&gt;
===convert===&lt;br /&gt;
&#039;&#039;See [[#ImageMagick]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===column===&lt;br /&gt;
&amp;lt;code&amp;gt;column&amp;lt;/code&amp;gt; may be used to print lines of standard input into columns (to reduce the total number of lines) or to create tables with custom delimiters (same number of lines). Part of the &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; package (version &amp;lt;code&amp;gt;2.39.3&amp;lt;/code&amp;gt;) in [[Debian]] systems.&lt;br /&gt;
&lt;br /&gt;
Reduce number of rows.&lt;br /&gt;
 $ seq 1 10                 # example multi-line input&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
 $ seq 1 10 | column;       # minimze rows&lt;br /&gt;
 1	2	3	4	5	6	7	8	9	10&lt;br /&gt;
&lt;br /&gt;
 $ seq 1 10 | column -c 30  # reduce rows to width of 30 characters&lt;br /&gt;
 1	5	9&lt;br /&gt;
 2	6	10&lt;br /&gt;
 3	7&lt;br /&gt;
 4	8&lt;br /&gt;
&lt;br /&gt;
Display text table with separator &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ printf &amp;quot;foo/bar/baz\nbi/boo/tax\n&amp;quot;&lt;br /&gt;
 foo/bar/baz&lt;br /&gt;
 bi/boo/tax&lt;br /&gt;
 $ printf &amp;quot;foo/bar/baz\nbi/boo/tax\n&amp;quot; | column -t -s&#039;/&#039;&lt;br /&gt;
 foo  bar  baz&lt;br /&gt;
 bi   boo  tax&lt;br /&gt;
&lt;br /&gt;
Display &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; contents (which uses &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; as separator)&lt;br /&gt;
 $ sudo cat /etc/passwd | column -t -s &#039;:&#039;&lt;br /&gt;
&lt;br /&gt;
===[[cron|crontab]]===&lt;br /&gt;
Edit crontab.&lt;br /&gt;
 $ crontab -e&lt;br /&gt;
&lt;br /&gt;
Print crontab to stdout:&lt;br /&gt;
 $ crontab -l&lt;br /&gt;
&lt;br /&gt;
Erase crontab (DON&#039;T DO UNLESS YOU HAVE A BACKUP OF THE CRONTAB):&lt;br /&gt;
 $ crontab -r&lt;br /&gt;
&lt;br /&gt;
Print to stdout the &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; of user &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; via user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; ([https://askubuntu.com/questions/189189/how-to-run-crontab-as-userwww-data ref]):&lt;br /&gt;
 $ sudo su - www-data -s /bin/bash -c &amp;quot;crontab -l&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===cryptsetup===&lt;br /&gt;
====Get details on a volume encrypted with LUKS====&lt;br /&gt;
&lt;br /&gt;
 $ cryptsetup status /dev/mapper/$some_volume&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;$some_volume&amp;lt;/code&amp;gt; is the name of an encrypted volume. [https://unix.stackexchange.com/questions/260533/how-to-determine-what-encryption-is-being-used-a-luks-partition Reference].&lt;br /&gt;
&lt;br /&gt;
===cut===&lt;br /&gt;
Select second field in comma-delimited CSV file &amp;lt;code&amp;gt;file.csv&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ cut -d&#039;,&#039; -f2&lt;br /&gt;
&lt;br /&gt;
Select second field in tab-delimited TSV file &amp;lt;code&amp;gt;file.tsv&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ cut -d$&#039;\t&#039; -f2 file.tsv&lt;br /&gt;
&lt;br /&gt;
Select fields 3 through 7 in comma-delimited CSV file.&lt;br /&gt;
 $ cut -d&#039;,&#039; -f3-7 file.csv&lt;br /&gt;
&lt;br /&gt;
===[[date]]===&lt;br /&gt;
&#039;&#039;Note: Assumes GNU date.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Print today&#039;s calendar date in [[ISO 8601]] format&lt;br /&gt;
 $ date -I&lt;br /&gt;
 $ date -Id&lt;br /&gt;
 $ date +%Y-%m-%d&lt;br /&gt;
&lt;br /&gt;
Print current date and time in [[ISO 8601]] format to second resolution.&lt;br /&gt;
 $ date -Is                    # e.g. 2024-02-01T05:44:58+00:00&lt;br /&gt;
 $ date +%Y-%m-%dT%H:%M:%S%:z  # e.g. 2024-02-01T05:44:58+00:00&lt;br /&gt;
&lt;br /&gt;
Print current date and time in [[ISO 8601]] format to second resolution with minimal separators. (e.g. for file name use)&lt;br /&gt;
 $ date +%Y%m%dT%H%M%S%z  # e.g. 20240201T054458+00&lt;br /&gt;
&lt;br /&gt;
Print current UNIX epoch. (i.e. [[POSIX]] seconds since [[1970-01-01]].).&lt;br /&gt;
 $ date +%s&lt;br /&gt;
&lt;br /&gt;
Print actual seconds since [[1970-01-01]]. (requires [https://packages.debian.org/trixie/tzdata-legacy tzdata-legacy])&amp;lt;ref name=&amp;quot;ken_20160303_right-tz&amp;quot;&amp;gt;[https://kenta.blogspot.com/ Ken].  ([[2016-03-03]]).  “[https://kenta.blogspot.com/2016/03/sqfzcxay-understanding-right-time-zone.html [sqfzcxay] Understanding the &amp;quot;right&amp;quot; time zone database]”.  &#039;&#039;[[blogspot.com]]&#039;&#039;.  Accessed [[2026-04-26]].  &amp;lt;/ref&amp;gt;{{bkc|[[2026-04-27]]: Getting the &amp;lt;code&amp;gt;/usr/share/zoneinfo/right/UTC&amp;lt;/code&amp;gt; may require running &amp;lt;code&amp;gt;$ sudo apt install tzdata-legacy&amp;lt;/code&amp;gt; on a [[Debian]]-based system. }}&lt;br /&gt;
 $ TZ=right/UTC date --date=&amp;quot;$(date --iso-8601=s)&amp;quot; +%s;&lt;br /&gt;
&lt;br /&gt;
Print all calendar dates for the next 365 days. (e.g. &amp;lt;code&amp;gt;2024-02-01\n2024-02-02\n2024-02-03\n…&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
today=&amp;quot;$(date +%s)&amp;quot;; n=0; for dia in {0..365}; do&lt;br /&gt;
  day=&amp;quot;$((today + dia * (24*60*60) ))&amp;quot;;&lt;br /&gt;
  date --date=&amp;quot;@$day&amp;quot; &amp;quot;+%Y-%m-%d&amp;quot;;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get date from hexadecimal Unix epoch.&lt;br /&gt;
 $ date -Is --date=&amp;quot;@$(printf &amp;quot;%u&amp;quot; &amp;quot;0x68ed790a&amp;quot;)&amp;quot;&lt;br /&gt;
 2025-10-13T22:11:22+00:00&lt;br /&gt;
 $ date -Is --date=&amp;quot;@$(printf &amp;quot;%u&amp;quot; &amp;quot;0xFFFFFFFF&amp;quot;)&amp;quot;    #  See [[Time formatting and storage bugs#Year_2106|Time formatting and storage bugs]]&lt;br /&gt;
 2106-02-07T06:28:15+00:00&lt;br /&gt;
&lt;br /&gt;
===dd===&lt;br /&gt;
Read every block of a block device &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt; in 4 KiB increments.&lt;br /&gt;
 $ sudo dd if=/dev/sdb of=/dev/random bs=4k&lt;br /&gt;
&lt;br /&gt;
Create a 10 MiB file containing [[pseudorandom noise]] using 2 MiB of [[Random access memory|RAM]] at a time.&amp;lt;ref name=&amp;quot;su_20120906_ddrandfile&amp;quot;&amp;gt;[[u1686_grawity]]. ([[2012-09-06]]). “[https://superuser.com/a/470957/1142336 How do I create a 1GB random file in Linux?]”. &#039;&#039;superuser.com&#039;&#039;. Accessed [[2023-07-01]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ dd if=/dev/urandom of=sample.txt bs=2M count=5&lt;br /&gt;
&lt;br /&gt;
===du===&lt;br /&gt;
List disk usage of ALL files and directories within working directory in bytes.&lt;br /&gt;
 $ du -b .&lt;br /&gt;
 $ du -b -- .&lt;br /&gt;
&lt;br /&gt;
List disk usage (i.e. size) of files and directories within working directory. (i.e. depth 1)&lt;br /&gt;
 $ du -bd1 -- .&lt;br /&gt;
&lt;br /&gt;
List disk usage of &amp;lt;code&amp;gt;*.txt&amp;lt;/code&amp;gt; files (and directories) fitting pattern &amp;lt;code&amp;gt;*.txt&amp;lt;/code&amp;gt; within working directory.{{bkc|[[2025-10-21]]: Note: Using the &amp;lt;code&amp;gt;find -printf &#039;%s\t%p\n&#039;&amp;lt;/code&amp;gt; pattern is much faster than calling &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt; repeatedly in a &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop that is fed paths from &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;. It&#039;s even faster than &amp;lt;code&amp;gt;find -exec du -b &#039;{}&#039; \+&amp;lt;/code&amp;gt; trick. }}&lt;br /&gt;
 $ du -bd1 -- *.txt&lt;br /&gt;
 $ find ./ -maxdepth 1 -name &amp;quot;*.txt&amp;quot; -printf &#039;%s\t%p\n&#039;  # faster than &#039;du&#039;&lt;br /&gt;
&lt;br /&gt;
===dig===&lt;br /&gt;
Get public IP address&amp;lt;ref name=&amp;quot;cyberciti_20230311_getpublicip&amp;quot;&amp;gt;[[Vivek Gite|Gite, Vivek]]. ([[2023-03-11]]). “[https://www.cyberciti.biz/faq/how-to-find-my-public-ip-address-from-command-line-on-a-linux/ How To Find My Public IP Address From Linux CLI]”. &#039;&#039;cyberciti.biz&#039;&#039;. Accessed [[2023-05-08]].&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ dig +short myip.opendns.com @resolver1.opendns.com&lt;br /&gt;
 $ dig +short txt ch whoami.cloudflare @1.0.0.1&lt;br /&gt;
 $ dig TXT +short o-o.myaddr.l.google.com @ns1.google.com&lt;br /&gt;
&lt;br /&gt;
===[[dpkg]]===&lt;br /&gt;
List available [[kernel]]s.&lt;br /&gt;
 $ dpkg --list | grep -- linux-image&lt;br /&gt;
&lt;br /&gt;
Check which package owns a file.&lt;br /&gt;
 $ dpkg -S /etc/systemd/logind.conf  # by file path&lt;br /&gt;
 $ dpkg -S &amp;quot;$(which zdump)&amp;quot;          # by command name, e.g. `zdump`&lt;br /&gt;
&lt;br /&gt;
===dpkg-reconfigure===&lt;br /&gt;
Add a [[locale]] in [[Debian]]-based systems that use [[dpkg]].&lt;br /&gt;
 $ sudo dpkg-reconfigure locales&lt;br /&gt;
: Navigate menus to select the local. Recommended: locales ending in &amp;lt;code&amp;gt;.UTF-8&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;C.UTF-8&amp;lt;/code&amp;gt; (compatibility), &amp;lt;code&amp;gt;en_US.UTF-8&amp;lt;/code&amp;gt; ([[English language|English]] of United States), &amp;lt;code&amp;gt;zh_CN.UTF-8&amp;lt;/code&amp;gt; ([[Chinese language|Chinese]] of mainland China), &amp;lt;code&amp;gt;id_ID.UTF-8&amp;lt;/code&amp;gt; ([[Indonesian language|Indonesian]] of [[Indonesia]]), &amp;lt;code&amp;gt;ja_JP.UTF-8&amp;lt;/code&amp;gt; ([[Japanese language|Japanese]] of [[Japan]]), &amp;lt;code&amp;gt;ko_KR.UTF-8&amp;lt;/code&amp;gt; ([[Korean language|Korean]] of [[South Korea]]).&lt;br /&gt;
&lt;br /&gt;
===[[dstat]]===&lt;br /&gt;
&#039;&#039;Consider using [[dool]] ([https://github.com/scottchiefbaker/dool GitHub])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show system stats, averaged every 60 seconds per line&lt;br /&gt;
 dstat --time --load --proc --cpu --mem --disk --io --net --sys --vm 60&lt;br /&gt;
&lt;br /&gt;
===[[dool]]===&lt;br /&gt;
&#039;&#039;A [[python3]] fork of [[dstat]].&#039;&#039;&amp;lt;ref name=&amp;quot;tecmint_20240422_dool&amp;quot;&amp;gt;[[Aaron Kili]].  ([[2024-04-22]]).  “[https://www.tecmint.com/dool-monitor-linux-server-performance-process-memory-network/ Dool – All-in-One Linux Server Performance Monitoring Tool]”.  [[tecmint.com]].  Accessed [[2025-10-03]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show system stats, averaged every 60 seconds per line&lt;br /&gt;
 dool --time --load --proc --cpu --mem --disk --io --net --bytes --sys --vm 60&lt;br /&gt;
&lt;br /&gt;
===[[emacs]]===&lt;br /&gt;
&#039;&#039;See [[Emacs notes]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[[exiftool]]===&lt;br /&gt;
&#039;&#039;Note: Consider using [[BK-2020-03]]&amp;lt;code&amp;gt;bkphotorights&amp;lt;/code&amp;gt; script to add XMP data with Creative Commons attribution data.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List all EXIF data, including XMP tags.&lt;br /&gt;
 $ exiftool file.jpg&lt;br /&gt;
&lt;br /&gt;
Remove all EXIF data from photograph files&lt;br /&gt;
 $ exiftool -all= file.jpg&lt;br /&gt;
&lt;br /&gt;
Remove only GPS EXIF data from JPG (see https://exiftool.org/forum/index.php?topic=6037.0 )&lt;br /&gt;
 $ exiftool -gps:all= file.jpg&lt;br /&gt;
&lt;br /&gt;
remove only GPS EXIF data from JPG If GPS is in XMP:&lt;br /&gt;
 $ exiftool &amp;quot;-gps*=&amp;quot; file.jpg&lt;br /&gt;
&lt;br /&gt;
Rotate image via EXIF tag&amp;lt;ref name=&amp;quot;exiftool_20161218_rotate&amp;quot;&amp;gt;Alan Clifford.  ([[2016-12-18]]).  “[https://exiftool.org/forum/index.php?PHPSESSID=57842c30da5ac949b63ec7325448da35&amp;amp;msg=40314 Writing to the EXIF:Orientation Tag]”.  &#039;&#039;[[exiftool.org]]&#039;&#039;.  Accessed [[2024-07-13]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ exiftool -Orientation#=1 file.jpg   # Horizontal (normal)&lt;br /&gt;
 $ exiftool -Orientation#=2 file.jpg   # Mirror horizontal&lt;br /&gt;
 $ exiftool -Orientation#=3 file.jpg   # Rotate 180&lt;br /&gt;
 $ exiftool -Orientation#=4 file.jpg   # Mirror vertical&lt;br /&gt;
 $ exiftool -Orientation#=5 file.jpg   # Mirror horizontal and rotate 270 CW&lt;br /&gt;
 $ exiftool -Orientation#=6 file.jpg   # Rotate 90 CW&lt;br /&gt;
 $ exiftool -Orientation#=7 file.jpg   # Mirror horizontal and rotate 90 CW&lt;br /&gt;
 $ exiftool -Orientation#=8 file.jpg   # Rotate 270 CW&lt;br /&gt;
&lt;br /&gt;
===[[f3]]===&lt;br /&gt;
&#039;&#039;&#039;Fight Fake Flash&#039;&#039;&#039; (F3) is a utility for detecting fake flash storage drives.&amp;lt;ref name=&amp;quot;debian_2023_fightfakeflash&amp;quot;&amp;gt;“[https://tracker.debian.org/pkg/f3 f3 - test real flash memory capacity]”.  ([[2023]]).  &#039;&#039;[[tracker.debian.org]]&#039;&#039;.  Accessed [[2024-11-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install&lt;br /&gt;
 $ sudo apt install f3&lt;br /&gt;
&lt;br /&gt;
Run on drive mounted at &amp;lt;code&amp;gt;/media/baltakatei/myusb&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ f3write /media/baltakatei/myusb&lt;br /&gt;
&lt;br /&gt;
Verify&lt;br /&gt;
 $ f3read /media/baltakatei/myusb&lt;br /&gt;
&lt;br /&gt;
===[[ffmpeg]]===&lt;br /&gt;
Encode [[h264]] video for compatibility with [[Firefox]].&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -pix_fmt yuv420p output.mp4&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 18 -pix_fmt yuv420p output.mp4  # higher quality&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 26 -pix_fmt yuv420p output.mp4  # smaller size&lt;br /&gt;
&lt;br /&gt;
Extract clip with time codes.&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -avoid_negative_ts 1 output.mp4&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -c:v libx264 -preset slow -crf 18 -c:a aac -b:a 128k -avoid_negative_ts 1 output.mp4      &lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 60 -t 120 -avoid_negative_ts 1 output.mp4&lt;br /&gt;
&lt;br /&gt;
Extract frame of video to save as [[PNG]] file&lt;br /&gt;
 $ ffmpeg -i input.webm -ss 00:00:00 -frames:v 1 output.png  # first frame&lt;br /&gt;
 $ ffmpeg -i input.webm -ss 00:00:10 -frames:v 1 output.png  # a frame from 10 seconds in&lt;br /&gt;
&lt;br /&gt;
Extract album artwork from one of the original audiobook mp3 files. (&#039;&#039;see [[Audiobook transcoding notes]].&#039;&#039;; example: [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/738ad68b7df736f438f74dfeffd56e400fb2c1bf/user/mp3s_to_mkv.sh mp3s_to_mkv.sh])&lt;br /&gt;
 $ ffmpeg -i How\ To\ -\ Track\ 001.mp3 -an -vcodec copy album_artwork.png&lt;br /&gt;
&lt;br /&gt;
Convert &amp;lt;code&amp;gt;*.JPG&amp;lt;/code&amp;gt; files into time lapse at 60 frames per second (&amp;lt;code&amp;gt;-r 60&amp;lt;/code&amp;gt;) with &amp;lt;code&amp;gt;yuvj420p&amp;lt;/code&amp;gt; colors to reduce banding.&amp;lt;ref name=&amp;quot;yc_20190529_carmack-ffmpeg-color&amp;quot;&amp;gt;[[John Carmack]].  ([[2019-05-29]]).  “[https://news.ycombinator.com/item?id=20036710 Adventures with ffmpeg and color ranges]”.  &#039;&#039;[[ycombinator.com]]&#039;&#039;.  Accessed [[2026-01-22]].  “&amp;lt;code&amp;gt;ffmpeg -i source.mp4 -c:v libx265 -pix_fmt yuvj420p dest.mp4&amp;lt;/code&amp;gt;”.  &amp;lt;/ref&amp;gt;{{bkc|[[2026-01-22]]: Use &amp;lt;code&amp;gt;$ ffprobe DSC00123.JPG&amp;lt;/code&amp;gt; to find the color space of the input [[JPEG]] file. For example: &amp;lt;code&amp;gt;Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown)&amp;lt;/code&amp;gt; means &amp;lt;code&amp;gt;-pix_fmt yuvj422p&amp;lt;/code&amp;gt; should be the option provided to &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
 $ ffmpeg -nostdin -pattern_type glob -i &#039;*.JPG&#039; -c:v libx264 -r 60 -preset veryslow -crf 18 -pix_fmt yuvj420p output4.mp4&lt;br /&gt;
 $ ffmpeg -nostdin -pattern_type glob -i &#039;*.JPG&#039; -c:v libx264 -r 60 -preset veryslow -crf 26 -pix_fmt yuvj420p output4.mp4&lt;br /&gt;
&lt;br /&gt;
Export [[SNES]] [[SPC]] audio.&amp;lt;ref name=&amp;quot;&amp;quot;&amp;gt;[[Kaz Wolfe]].  ([[2017-03-28]]).  “[https://askubuntu.com/a/897694/ SPC to WAV command-line]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2026-04-13]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffmpeg -i track1.spc track1.flac&lt;br /&gt;
&lt;br /&gt;
====Quality of life====&lt;br /&gt;
Hide verbose configuration banner. (e.g. &amp;lt;code&amp;gt;built with gcc 11… configuration: --prefix=/usr…&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ ffmpeg -hide_banner&lt;br /&gt;
&lt;br /&gt;
====Encode video====&lt;br /&gt;
Encode video using [[VP9]] codec with 2 passes and tile-based multithreading.&amp;lt;ref name=&amp;quot;ffmpeg_2024_vp9-encoding&amp;quot;&amp;gt;“[https://trac.ffmpeg.org/wiki/Encode/VP9 FFmpeg and VP9 Encoding Guide]”.  ([[2024-01]]).  &#039;&#039;[[ffmpeg.org]]&#039;&#039;.  Accessed [[2024-05-23]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
fin=input.mkv;&lt;br /&gt;
ffmpeg -nostdin -i &amp;quot;$fin&amp;quot; -c:v libvpx-vp9 -row-mt 1 -b:v 0 -crf 18 -pass 1 -f null /dev/null &amp;amp;&amp;amp; \&lt;br /&gt;
ffmpeg -nostdin -i &amp;quot;$fin&amp;quot; -c:v libvpx-vp9 -row-mt 1 -b:v 0 -crf 18 -pass 2 &amp;quot;${fin%.mkv}.webm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specify a constant rate factor (CRF)&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 18 -c:a copy output.mp4&lt;br /&gt;
&lt;br /&gt;
Clip a video at CRF 18 and encode audio to [[OPUS]].&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -c:v libx264 -preset slow -crf 18 -c:a libopus -b:a 128k -avoid_negative_ts 1 output.mp4&lt;br /&gt;
&lt;br /&gt;
Process multiple videos in a [[Bash]] while loop. (Avoid [[stdin]] conflict with &amp;lt;code&amp;gt;-nostdin&amp;lt;/code&amp;gt; option)&amp;lt;ref name=&amp;quot;bashfaq_20221030_089stdin&amp;quot;&amp;gt;“[https://mywiki.wooledge.org/BashFAQ/089 BashFAQ/089 I&#039;m reading a file line by line and running ssh or ffmpeg, only the first line gets processed!]”.  ([[2022-10-30]]).  &#039;&#039;mywiki.wooledge.org&#039;&#039;.  Accessed [[2023-07-29]].  [https://web.archive.org/web/20230723080923/https://mywiki.wooledge.org/BashFAQ/089 Archived] from the original on [[2023-07-23]].  &amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;se_20220922_bashvarffmpeg&amp;quot;&amp;gt;[[roaima]].  ([[2022-09-22]]).  “[https://unix.stackexchange.com/a/718279 Bash variable truncated when passed into ffmpeg]”.  &#039;&#039;[[unix.stackexchange.com]]&#039;&#039;.  Accessed [[2023-07-29]].  [https://web.archive.org/web/20230729161626/https://unix.stackexchange.com/questions/718277/bash-variable-truncated-when-passed-into-ffmpeg/718279#718279 Archived] from the original on [[2023-07-29]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 while IFS= read -r file; do&lt;br /&gt;
   ffmpeg -nostdin -i &amp;quot;$file&amp;quot; -c:v libx264 -c:a aac &amp;quot;${file%.avi}&amp;quot;.mkv&lt;br /&gt;
 done &amp;lt; &amp;lt;(find . -name &#039;*.avi&#039;)&lt;br /&gt;
&lt;br /&gt;
=====Apply video filters=====&lt;br /&gt;
Create a 1-minute 60 fps time lapse video from 3 hours of 30 fps input.&lt;br /&gt;
: From videos, create a file list then run &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt; on the list.&lt;br /&gt;
 $ for f in ./*.MP4; do echo &amp;quot;file &#039;$PWD/$f&#039;&amp;quot; &amp;gt;&amp;gt; filelist.txt; done&lt;br /&gt;
&lt;br /&gt;
: Create the 60 fps (&amp;lt;code&amp;gt;-r 60&amp;lt;/code&amp;gt;) timelapse of 3 hours reduced into 1 minute. The &amp;lt;code&amp;gt;setpts&amp;lt;/code&amp;gt; factor is equal to &amp;lt;code&amp;gt;(duration out)/(duration in)*(fps out)/(fps in)&amp;lt;/code&amp;gt;. So, &amp;lt;code&amp;gt;(1*60)/(3*60*60)*(60/30) ≈ 0.01111&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ ffmpeg -nostdin -f concat -safe 0 -i filelist.txt -vf &amp;quot;setpts=0.01111*PTS&amp;quot; -an -r 60 output_timelapse.mp4&lt;br /&gt;
&lt;br /&gt;
Apply a temporal median filter across a radius of 10 frames.&amp;lt;ref name=&amp;quot;ffmpeg_2024_filter-tmedian&amp;quot;&amp;gt;“[https://ffmpeg.org/ffmpeg-filters.html#tmedian 11.259 tmedian]”.  (n.d.).  &#039;&#039;[[ffmpeg.org]]&#039;&#039;.  Accessed [[2024-09-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffmpeg -f -i input.mp4 -vf &amp;quot;tmedian=radius=10:planes=15:percentile=0.5&amp;quot; -an output.mp4&lt;br /&gt;
&lt;br /&gt;
Apply both a time lapse and a temporal median filter for several &amp;lt;code&amp;gt;.[[MP4]]&amp;lt;/code&amp;gt; files.&lt;br /&gt;
 $ for f in ./*.MP4; do echo &amp;quot;file &#039;$PWD/$f&#039;&amp;quot; &amp;gt;&amp;gt; filelist.txt; done;&lt;br /&gt;
 $ ffmpeg -f concat -safe 0 -i filelist.txt -vf &amp;quot;setpts=0.01111*PTS, tmedian=radius=10:planes=15:percentile=0.5&amp;quot; -an -r 60 -crf 30 output_timelapse_crf30_median.mp4&lt;br /&gt;
&lt;br /&gt;
====Split a video file into roughly equal segments====&lt;br /&gt;
Reference: https://unix.stackexchange.com/a/212518/411854&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c copy -map 0 -segment_time 00:20:00 -f segment -reset_timestamps 1 output%03d.mp4&lt;br /&gt;
&lt;br /&gt;
====Combine video files into a single file====&lt;br /&gt;
Reference: https://trac.ffmpeg.org/wiki/Concatenate&lt;br /&gt;
&lt;br /&gt;
 # this is a comment of the file named mylist.txt&lt;br /&gt;
 file &#039;/path/to/file1.wav&#039;&lt;br /&gt;
 file &#039;/path/to/file2.wav&#039;&lt;br /&gt;
 file &#039;/path/to/file3.wav&#039;&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.wav&lt;br /&gt;
&lt;br /&gt;
====Add subtitles to a video file====&lt;br /&gt;
Add multiple [[ASS]] subtitle files to a single [[MP4]] video file.&amp;lt;ref&amp;gt;{{bk}}: [[2024-03-01]]: See [[ffmpeg]]ʼs [https://trac.ffmpeg.org/wiki/Map &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt;] option. Order is important.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i input.mp4 \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.en-US.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.es-US.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.id.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.ja.ass \&lt;br /&gt;
       -map 0:v -map 0:a \&lt;br /&gt;
       -map 1 -map 2 -map 3 -map 4 \&lt;br /&gt;
       -metadata:s:s:0 language=eng \&lt;br /&gt;
       -metadata:s:s:1 language=spa \&lt;br /&gt;
       -metadata:s:s:2 language=ind \&lt;br /&gt;
       -metadata:s:s:3 language=jpn \&lt;br /&gt;
       -c copy \&lt;br /&gt;
       -c:s ass output.mkv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[ffprobe]]===&lt;br /&gt;
Get audio duration in seconds as a decimal number.&amp;lt;ref name=&amp;quot;so_20110604_duration-audio-file&amp;quot;&amp;gt;[https://stackoverflow.com/users/200265/louise louise].  ([[2011-06-04]]).  “[https://stackoverflow.com/a/22243834/10850071 How to extract duration time from ffmpeg output?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-02-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot; -show_entries format=duration -v quiet -of csv=&amp;quot;p=0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
: Get audio duration in seconds of all &amp;lt;code&amp;gt;.flac&amp;lt;/code&amp;gt; files in the working directory with [[bc]].&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
dur=&amp;quot;0.0&amp;quot;; while read -r line; do&lt;br /&gt;
  line_dur=&amp;quot;$(ffprobe -i &amp;quot;$line&amp;quot; -show_entries format=duration -v quiet -of csv=&amp;quot;p=0&amp;quot;)&amp;quot;;&lt;br /&gt;
  dur=&amp;quot;$(echo &amp;quot;$dur + $line_dur&amp;quot; | bc -l)&amp;quot;;&lt;br /&gt;
done &amp;lt; &amp;lt;(find . -type f -name &amp;quot;*.flac&amp;quot;);&lt;br /&gt;
echo &amp;quot;$dur&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get bitrate in integer bytes.&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot;; -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 &lt;br /&gt;
&lt;br /&gt;
Get chapter times.&amp;lt;ref name=&amp;quot;se_20190425_ffmpeg-chapters&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/349887/nemo Nemo].  ([[2019-04-25]]).  “[https://unix.stackexchange.com/a/515371 Using ffmpeg to split an Audible audio-book into chapters?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-01-20]].  &amp;lt;/ref&amp;gt;&amp;lt;ref group=fn&amp;gt;{{bk}}: See &amp;lt;code&amp;gt;[[BK-2020-03]]:user/mw_get_audiobook_chapters.sh&amp;lt;/code&amp;gt;.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot; -print_format json -show_chapters -sexagesimal&lt;br /&gt;
&lt;br /&gt;
===[[find]]===&lt;br /&gt;
Outputs newline-delimited (default) list of paths of files or directories matching specified filters.&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; directory recursively.&lt;br /&gt;
 $ find /path/to/dir&lt;br /&gt;
&lt;br /&gt;
List all files in working directory recursively&lt;br /&gt;
 $ find . -type f&lt;br /&gt;
&lt;br /&gt;
List all directories in working directory recursively&lt;br /&gt;
 $ find . -type d&lt;br /&gt;
&lt;br /&gt;
Search &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; for files ending in &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.JPG&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ find $HOME/ -type f -iname &amp;quot;*.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get file sizes, via [[du]], of all files in the working directory recursively&lt;br /&gt;
 $ find . -type f -exec du -b &#039;{}&#039; \;&lt;br /&gt;
 $ find . -type f -exec du -b &#039;{}&#039; +;  # performs fewer calls to &#039;du&#039;&lt;br /&gt;
&lt;br /&gt;
: Get file sizes of all files in the working directory recursively &#039;&#039;without&#039;&#039; calling [[du]].&lt;br /&gt;
 $ find . -type f -printf &#039;%s\t%p\n&#039;  # newline-terminated&lt;br /&gt;
 $ find . -type f -printf &#039;%s\t%p\0&#039;  # null-terminated (for feeding to &#039;shuf -z&#039; or &#039;cut -z&#039;)&lt;br /&gt;
&lt;br /&gt;
List all files and directories within the working directory.&lt;br /&gt;
 $ find . -maxdepth 1&lt;br /&gt;
&lt;br /&gt;
List all files and directories precisely 4 subdirectories deep&lt;br /&gt;
 $ find . -mindepth 4 -maxdepth 4&lt;br /&gt;
&lt;br /&gt;
List all files in the working directory recursively, following symlinks up to a maximum depth of 10 subdirectories deep&lt;br /&gt;
 $ find -L . -maxdepth 10 -type f&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the working directory starting with a &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; (i.e. list all dotfiles and dotdirs)&lt;br /&gt;
 $ find . -name &amp;quot;.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the working directory starting with a &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ find . ! -name &amp;quot;.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
List all files in the working directory recursively except those ending in either &amp;lt;code&amp;gt;.ots&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ots.bak&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ find . -type f ! \( -name &amp;quot;*.ots&amp;quot; -or -name &amp;quot;*.ots.bak&amp;quot; \)&lt;br /&gt;
&lt;br /&gt;
Find files in the working directory of a minimum size. (e.g. greater than but not equal to 1 MiB)&lt;br /&gt;
 $ find . -type f -size +$((1024 * 1024))c  # calc MiB&lt;br /&gt;
 $ find . -type f -size +$((1024 ** 2))c    # calc MiB&lt;br /&gt;
 $ find . -type f -size +1048576c           # use bytes&lt;br /&gt;
 $ find . -type f -size +1M                 # do not use due to rounding issues&lt;br /&gt;
&lt;br /&gt;
Find files in the working directory of a maximum size. (e.g. less than but not equal to 1 MiB)&lt;br /&gt;
 $ find /path/to/dir -type f -size -1048576c  # use -1048576c instead of -1M due to rounding issues&lt;br /&gt;
&lt;br /&gt;
Find files in &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; older than a certain date (e.g. &amp;lt;code&amp;gt;2024-01-01&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ find /path/to/search -not -newermt 2024-01-01&lt;br /&gt;
&lt;br /&gt;
List files sorted by modification date&lt;br /&gt;
 $ find /path/to/directory -type f -printf &#039;%T@ %p\n&#039; | sort -n | cut -d&#039; &#039; -f2-&lt;br /&gt;
&lt;br /&gt;
List all &amp;lt;code&amp;gt;.json&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; that lack an accompanying &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt; file. (e.g. show &amp;lt;code&amp;gt;file.json&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt; does not exist.&lt;br /&gt;
 $ while read -r line; do if [[ ! -f &amp;quot;${line%.json}.txt&amp;quot; ]]; then declare -p line; fi; done &amp;lt; &amp;lt;(find /path/to/dir -type f -name &amp;quot;*.json&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Perform a command (e.g. &amp;lt;code&amp;gt;ots s&amp;lt;/code&amp;gt; on every file via null-terminated pipe to [[xargs]] in random order.&lt;br /&gt;
 $ find . -type f -print0 | shuf --zero-terminated | xargs --null ots s&lt;br /&gt;
&lt;br /&gt;
===[[gcc]]===&lt;br /&gt;
&#039;&#039;Available in Debian &amp;lt;code&amp;gt;build-essential&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
The GNU C Compiler&lt;br /&gt;
&lt;br /&gt;
Compile C-code specified in the command line.&amp;lt;ref name=&amp;quot;se_20141024_gccbashprocsub&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/14034/celada Celada].  ([[2014-10-24]]).  “[https://unix.stackexchange.com/a/164109/411854 Why does BASH process substitution not work with some commands?]”.  Accessed [[2023-07-14]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ gcc -x c &amp;lt;(echo &#039;int main(){return 0;}&#039;)&lt;br /&gt;
 $ echo &#039;int main(){return 0;}&#039; | gcc -x c -&lt;br /&gt;
 $ gcc -x c -o hello &amp;lt;(echo -e &amp;quot;#include &amp;lt;stdio.h&amp;gt;\n main()\n{\nprintf(\&amp;quot;hello, \&amp;quot;);\nprintf(\&amp;quot;world\&amp;quot;);\nprintf(\&amp;quot;\\\n\&amp;quot;);\n}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===[[git]]===&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|git}} &lt;br /&gt;
&lt;br /&gt;
See recent checkout, commit, or other operations by commit reference. (e.g. to find a commit lost because it was on a detached HEAD).  &lt;br /&gt;
 $ git reflog&lt;br /&gt;
&lt;br /&gt;
To automatically sign merges (not default).&lt;br /&gt;
 $ git config merge.gpgsign true&lt;br /&gt;
 $ git -c merge.gpgsign=&#039;true&#039; pull&lt;br /&gt;
&lt;br /&gt;
See remotes.&lt;br /&gt;
 $ git remote -v&lt;br /&gt;
&lt;br /&gt;
Rename a remote. ([https://support.beanstalkapp.com/article/16-how-do-i-rename-an-existing-git-remote ref])&lt;br /&gt;
 $ git remote rename beanstalk origin&lt;br /&gt;
&lt;br /&gt;
Export a git bundle (repository backup)&lt;br /&gt;
 $ git bundle create filename.bundle --all&lt;br /&gt;
&lt;br /&gt;
Trace git operations (especially those involving &amp;lt;code&amp;gt;gpg&amp;lt;/code&amp;gt; signing operations). ([https://gist.github.com/paolocarrasco/18ca8fe6e63490ae1be23e84a7039374 ref])&lt;br /&gt;
 $ GIT_TRACE=1 git commit&lt;br /&gt;
&lt;br /&gt;
Get current commit, short git log entry, and ISO-8601 date&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=iso&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=format:&amp;quot;%Y-%m-%d&amp;quot;  #shorter date&lt;br /&gt;
&lt;br /&gt;
Delete a local branch named `develop` (assuming `develop` is not checked out).&lt;br /&gt;
 $ git branch -d develop&lt;br /&gt;
&lt;br /&gt;
Untrack but don&#039;t remove committed file. ([https://stackoverflow.com/questions/12481639/remove-files-from-git-commit#comment28735458_12481977 Ref/attrib]; useful if you tracked something that shouldn&#039;t be tracked like &amp;lt;code&amp;gt;repo.git/config&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ git rm --cached path/to/committed/file&lt;br /&gt;
&lt;br /&gt;
Pull branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; from remote &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to unchecked out local branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; without altering working tree (useful if worktree files are being used by something else).                                                                                                                                                                                                                                                                           &lt;br /&gt;
 $ git pull origin develop:develop&lt;br /&gt;
&lt;br /&gt;
Set single configuration parameters for the duration of a single command.&lt;br /&gt;
: Disable checking [[GPG]] signatures when running &amp;lt;/code&amp;gt;$ git log&amp;lt;/code&amp;gt;. (see [https://stackoverflow.com/a/19841177 ref])&lt;br /&gt;
 $ git -c log.showSignature=&#039;false&#039; log&lt;br /&gt;
&lt;br /&gt;
: Commit and/or tag with &amp;lt;code&amp;gt;ots --wait&amp;lt;/code&amp;gt; option.&lt;br /&gt;
 $ pathOtsWait=&amp;quot;/home/debuser/.local/share/ots/ots-git-gpg-wrapper-wait.sh&amp;quot;;&lt;br /&gt;
 $ git -c gpg.program=&amp;quot;$pathOtsWait&amp;quot; commit -S&lt;br /&gt;
 $ git -c gpg.program=&amp;quot;$pathOtsWait&amp;quot; tag --sign &amp;quot;some_tag_name&amp;quot; main&lt;br /&gt;
&lt;br /&gt;
Set a remote branch `origin/develop` as the upstream branch for a local branch named `develop`.&amp;lt;ref name=&amp;quot;git_20190816_gitbranch&amp;quot;&amp;gt;“[https://git-scm.com/docs/git-branch/2.23.0 git-branch - List, create, or delete branches]”. ([[2019-08-16]]). &#039;&#039;git-scm.com&#039;&#039;. Accessed [[2023-04-20]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git branch --set-upstream-to=origin/develop develop&lt;br /&gt;
&lt;br /&gt;
Get current commit, short git log entry, and ISO-8601 date&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=iso&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=format:&amp;quot;%Y-%m-%d&amp;quot;  #shorter date&lt;br /&gt;
&lt;br /&gt;
Delete a local branch named `develop` (assuming `develop` is not checked out).&lt;br /&gt;
 $ git branch -d develop&lt;br /&gt;
&lt;br /&gt;
Untrack but don&#039;t remove committed file. ([https://stackoverflow.com/questions/12481639/remove-files-from-git-commit#comment28735458_12481977 Ref/attrib]; useful if you tracked something that shouldn&#039;t be tracked like &amp;lt;code&amp;gt;repo.git/config&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ git rm --cached path/to/committed/file&lt;br /&gt;
&lt;br /&gt;
Pull branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; from remote &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to unchecked out local branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; without altering working tree (useful if worktree files are being used by something else).                                                                                                                                                                                                                                                                           &lt;br /&gt;
 $ git pull origin develop:develop&lt;br /&gt;
&lt;br /&gt;
Set a remote branch `origin/develop` as the upstream branch for a local branch named `develop`.&amp;lt;ref name=&amp;quot;git_20190816_gitbranch&amp;quot;&amp;gt;“[https://git-scm.com/docs/git-branch/2.23.0 git-branch - List, create, or delete branches]”. ([[2019-08-16]]). &#039;&#039;git-scm.com&#039;&#039;. Accessed [[2023-04-20]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git branch --set-upstream-to=origin/develop develop&lt;br /&gt;
&lt;br /&gt;
Disable git credential helper for a single command.&amp;lt;ref name=&amp;quot;so_20170517_gitdisablecredhelp&amp;quot;&amp;gt;[https://stackoverflow.com/users/6309/vonc VonC].  ([[2017-05-17]]).  “[https://stackoverflow.com/a/44033298 How do I disable git&#039;s credential helper for a single repository?]”.  &#039;&#039;[[Stack Overflow]]&#039;&#039;.  Accessed [[2023-08-02]].  [https://web.archive.org/web/20230802203919/https://stackoverflow.com/questions/13198143/how-do-i-disable-gits-credential-helper-for-a-single-repository/44033298 Archived] from the original on [[2023-08-02]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git -c credential.helper= pull origin refs/heads/master&lt;br /&gt;
&lt;br /&gt;
===[[gpg]]===&lt;br /&gt;
&#039;&#039;See also [[GnuPG]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|gpg}}&lt;br /&gt;
&lt;br /&gt;
Verify a file named &amp;lt;code&amp;gt;SHA256SUMS&amp;lt;/code&amp;gt; against detached signature file &amp;lt;code&amp;gt;SHA256SUMS.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ gpg --verify SHA256SUMS.gpg SHA256SUMS&lt;br /&gt;
&lt;br /&gt;
Use a temporary keyring&lt;br /&gt;
 $ gpg --no-default-keyring --keyring /dev/shm/temp-keyring.kbx&lt;br /&gt;
&lt;br /&gt;
Refresh keys&lt;br /&gt;
 $ gpg --keyserver keys.openpgp.org --receive-keys deadbeef deadbeef&lt;br /&gt;
 $ gpg --keyserver keyserver.ubuntu.com --receive-keys deadbeef deadbeef&lt;br /&gt;
&lt;br /&gt;
Verify a file (e.g. &amp;lt;code&amp;gt;SHA256SUMS&amp;lt;/code&amp;gt;) against a detached signature (e.g. &amp;lt;code&amp;gt;SHA256SUMS.gpg&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ gpg --verify SHA256SUMS.gpg SHA256SUMS&lt;br /&gt;
&lt;br /&gt;
===grep===&lt;br /&gt;
Search for a process named “&amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt;” with &amp;lt;code&amp;gt;ps aux&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;grep bash&amp;lt;/code&amp;gt; but exclude matches of “&amp;lt;code&amp;gt;grep bash&amp;lt;/code&amp;gt;&amp;quot; itself.&lt;br /&gt;
 $ ps aux | grep &amp;quot;bas[h]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ignore binary matches with &amp;lt;code&amp;gt;-I&amp;lt;/code&amp;gt; option.&lt;br /&gt;
 $ grep &amp;quot;a&amp;quot; largeProgram.exe &amp;amp;&amp;amp; echo &amp;quot;Match found.&amp;quot; || echo &amp;quot;No match found.&amp;quot;&lt;br /&gt;
 grep: get_put_char: binary file matches&lt;br /&gt;
 Match found.&lt;br /&gt;
 $ grep -I &amp;quot;a&amp;quot; largeProgram.exe &amp;amp;&amp;amp; echo &amp;quot;Match found.&amp;quot; || echo &amp;quot;No match found.&amp;quot;&lt;br /&gt;
 No match found.&lt;br /&gt;
&lt;br /&gt;
Use [[find]] with [[parallel]] to recursively search a file tree for text matches.&lt;br /&gt;
 $ find . -type f -name &amp;quot;*.tsv&amp;quot; | parallel grep -iHIC3 --color=always -e &#039;mexico&#039; &#039;{}&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;-name &amp;quot;*.tsv&amp;quot;&amp;lt;/code&amp;gt;: Search only files with names ending in &amp;lt;code&amp;gt;.tsv&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt;: Ignore character capitalization.&lt;br /&gt;
: &amp;lt;code&amp;gt;-H&amp;lt;/code&amp;gt;: Print name of file containing match.&lt;br /&gt;
: &amp;lt;code&amp;gt;-C3&amp;lt;/code&amp;gt;: Show 3 lines before and after match.&lt;br /&gt;
: &amp;lt;code&amp;gt;-I&amp;lt;/code&amp;gt;: Do not search binary files.&lt;br /&gt;
: &amp;lt;code&amp;gt;-e &#039;mexico&#039;&amp;lt;/code&amp;gt;: Search for lines containing the string &amp;lt;code&amp;gt;mexico&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{}&#039;&amp;lt;/code&amp;gt;: Filename word placeholder for [[parallel]].&lt;br /&gt;
&lt;br /&gt;
===[[gs]]===&lt;br /&gt;
See also [[Ghostscript]].&lt;br /&gt;
&lt;br /&gt;
{{Anchor|pdf-no-img}}Remove raster images from a PDF.&amp;lt;ref name=&amp;quot;so_20160616_removepdfraster&amp;quot;&amp;gt;[https://stackoverflow.com/users/359307/kurt-pfeifle Kurt Pfeifle].  ([[2016-06-16]]).  “[https://stackoverflow.com/a/37858893 ]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2023-10-28]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ gs -o noimages.pdf -sDEVICE=pdfwrite -dFILTERIMAGE input.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====[[Regular Expressions]]====&lt;br /&gt;
&lt;br /&gt;
Show lines that match pattern.&lt;br /&gt;
 $ grep &#039;some pattern&#039; -- file.txt&lt;br /&gt;
&lt;br /&gt;
Show lines that don&#039;t match pattern.&lt;br /&gt;
 $ grep -v &#039;some pattern&#039; -- file.txt&lt;br /&gt;
&lt;br /&gt;
Match integers of a range of numbers of digits (e.g. 2 to 3)&lt;br /&gt;
 $ myVar=&amp;quot;$(printf &amp;quot;S2 E3\nS57 E11\nS131 E51\nS7212 E3\n&amp;quot;)&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot;&lt;br /&gt;
 S2 E3&lt;br /&gt;
 S57 E11&lt;br /&gt;
 S131 E51&lt;br /&gt;
 S7212 E3&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot; | grep -E &amp;quot;S[0-9]{2,3} &amp;quot;&lt;br /&gt;
 S57 E11&lt;br /&gt;
 S131 E51&lt;br /&gt;
&lt;br /&gt;
Match http URLs in a text file (see [https://unix.stackexchange.com/a/181258 ref])&lt;br /&gt;
 $ cat input.txt | grep -Eo &amp;quot;(http|https)://[a-zA-Z0-9./?=_%:-]*&amp;quot; | sort -u&lt;br /&gt;
&lt;br /&gt;
===[[gunzip]]===&lt;br /&gt;
See [[{{PAGENAME}}#gzip|#gzip]].&lt;br /&gt;
&lt;br /&gt;
===[[gzip]]===&lt;br /&gt;
Transform a &amp;lt;code&amp;gt;sql.gz&amp;lt;/code&amp;gt; archive into a &amp;lt;code&amp;gt;sql.xz&amp;lt;/code&amp;gt; archive.&lt;br /&gt;
 $ gunzip -c archivo.sql.gz | xz -z - &amp;gt; archivo.sql.xz&lt;br /&gt;
&lt;br /&gt;
===[[head]]===&lt;br /&gt;
Note: Consider using in tandem with [[#tail|tail]] when printing ranges of lines from large files.&lt;br /&gt;
&lt;br /&gt;
Print first 3 lines.&lt;br /&gt;
 $ seq 1 10 | head -n3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
&lt;br /&gt;
Print all but last 3 lines.&lt;br /&gt;
 $ seq 1 10 | head -n-3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
{{Anchor|head-slice}}{{Anchor|head-slice-bytes}}Print 4th to 7th bytes of a non-seekable stream (stdin, FIFO, socket). For seekable file, see [[#tail-slice|#tail]].&lt;br /&gt;
 $ selStart=$((4-1)); selEnd=$((7-1)); selCount=$((selEnd-selStart+1));&lt;br /&gt;
 $ byteSource.sh | head -c $((selEnd+1)) | tail -c $selCount;&lt;br /&gt;
&lt;br /&gt;
===[[iftop]]===&lt;br /&gt;
Show data traffic (i.e. [[bandwidth]] usage) on network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;. Note: consider using in tandem with [[nethogs]].&lt;br /&gt;
 $ sudo iftop -i eth0&lt;br /&gt;
&lt;br /&gt;
===[[iotop]]===&lt;br /&gt;
Show disk write rates for a given process by PID.&lt;br /&gt;
 $ iotop -p PID&lt;br /&gt;
&lt;br /&gt;
List accumulative (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;) disk read/write rates for all &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; processes via process PIDs (&amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt;), updating every 10 seconds (&amp;lt;code&amp;gt;-d10&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ sudo iotop -ad10 $(pgrep &amp;quot;tar|xz&amp;quot; | xargs -I &amp;quot;{}&amp;quot; echo -n &amp;quot;-p {} &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===[[ip]]===&lt;br /&gt;
Show available network interfaces.&lt;br /&gt;
 $ ip link show&lt;br /&gt;
&lt;br /&gt;
===[[ImageMagick]]===&lt;br /&gt;
Convert a [[PNG]] file into a [[JPEG]] at 90% quality.&lt;br /&gt;
  $ convert input.png -quality 90 output.jpg&lt;br /&gt;
&lt;br /&gt;
Convert a [[GIF]] into a set of frames (Note: May fail with some optimized GIF formats)&lt;br /&gt;
 $ convert Year_2038_problem.gif output%02d.gif&lt;br /&gt;
&lt;br /&gt;
===[[jdupes]]===&lt;br /&gt;
List duplicates in DIR greater than or equal to 100MB.&lt;br /&gt;
 $ jdupes -X size+=:100MB DIR -r&lt;br /&gt;
&lt;br /&gt;
List duplicates within DIR1 (not following subdirectories) and within DIR2 (following subdirectories)&lt;br /&gt;
 $ jdupes -X size+=:100MB DIR1 -R DIR2&lt;br /&gt;
&lt;br /&gt;
List duplicates within DIR1, DIR2, and DIR3 recursively, listing duplicates of DIR1 first&lt;br /&gt;
 $ jdupes -r -O DIR1 DIR2 DIR3&lt;br /&gt;
&lt;br /&gt;
===[[journalctl]]===&lt;br /&gt;
Show previous 1 hour of logs:&lt;br /&gt;
 $ journalctl --utc --all --output=short-iso --since=-1h&lt;br /&gt;
&lt;br /&gt;
Show logs since &amp;lt;code&amp;gt;2023-01-10T09:15&amp;lt;/code&amp;gt; and before &amp;lt;code&amp;gt;2023-01-10T13:00&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $ journalctl --utc --all --output=short-iso --since=\&amp;quot;2023-01-10 09:15\&amp;quot; --until=\&amp;quot;2023-01-10 13:00\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[less]]===&lt;br /&gt;
Display file as scrollable buffer.&lt;br /&gt;
 $ less file.txt&lt;br /&gt;
&lt;br /&gt;
Display file and display live updates.&lt;br /&gt;
 $ less +F file.txt&lt;br /&gt;
&lt;br /&gt;
Display file while truncating display of long lines.&lt;br /&gt;
 $ less -S file.txt&lt;br /&gt;
&lt;br /&gt;
Display file while interpreting [[ANSI]] color codes (e.g. &amp;lt;code&amp;gt;$ jq -C &#039;.&#039; file.json | less --RAW-CONTROL-CHARS&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ less --RAW-CONTROL-CHARS&lt;br /&gt;
&lt;br /&gt;
===[[locate]]===&lt;br /&gt;
Install on [[ubuntu]] 24.{{bkc|[[2024-12-11]]: Apparently this package used to be part of GNU &amp;lt;code&amp;gt;findutils&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
  $ sudo apt install locate&lt;br /&gt;
&lt;br /&gt;
===[[ls]]===&lt;br /&gt;
Note: assumes &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; from GNU Coreutils 8.32&lt;br /&gt;
&lt;br /&gt;
List all files, sorted by [[ISO-8601]]-style date.&lt;br /&gt;
 $ ls -alh --time-style=long-iso | sort -k6,7&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei  88K 2005-08-19 19:18 file1&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 930K 2010-07-28 02:01 file2&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 2.4M 2016-05-18 14:52 file3&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 7.2K 2021-05-11 15:29 file4&lt;br /&gt;
&lt;br /&gt;
===[[lsof]]===&lt;br /&gt;
Display all files opened by a process by a single PID.&amp;lt;ref name=&amp;quot;tecmint_20230714_lsof-examples&amp;quot; /&amp;gt;&lt;br /&gt;
 $ lsof -p PID&lt;br /&gt;
&lt;br /&gt;
Display all files opened by a process by name (e.g. [[xz]])&amp;lt;ref name=&amp;quot;tecmint_20230714_lsof-examples&amp;quot;&amp;gt;[[Narad Shrestha]].  ([[2023-07-14]]).  “[https://www.tecmint.com/10-lsof-command-examples-in-linux/ How to Use ‘lsof’ Command to Check Open Files in Linux]”.  &#039;&#039;[[tecmint.com]]&#039;&#039;.  Accessed [[2024-01-05]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ while read -r line; do lsof -p &amp;quot;$line&amp;quot;; printf &amp;quot;\n&amp;quot;; done &amp;lt; &amp;lt;(pgrep xz)&lt;br /&gt;
&lt;br /&gt;
===[[mail]]===&lt;br /&gt;
Reference: https://devanswers.co/you-have-mail-how-to-read-mail-in-ubuntu/&lt;br /&gt;
&lt;br /&gt;
Commands:&lt;br /&gt;
 $ mail   # start mail&lt;br /&gt;
 &amp;amp; h$     # list latest messages&amp;lt;ref name=&amp;quot;johnkerl_19970428_unix-mail&amp;quot;&amp;gt;[[John Kerl]]  ([[1997-04-28]]).  “[https://www.johnkerl.org/doc/mail-how-to.html How to use the Unix command-line mail tool]”.  &#039;&#039;[[johnkerl.org]]&#039;&#039;.  Accessed [[2024-01-05]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 &amp;amp; 5      # read message 5&lt;br /&gt;
 &amp;amp; d 1    # delete message 1&lt;br /&gt;
 &amp;amp; q      # quit mail&lt;br /&gt;
&lt;br /&gt;
Send mail to self:&lt;br /&gt;
 $ mail -s &amp;quot;I&#039;m in your base&amp;quot; -- &amp;quot;$(whoami)&amp;quot; &amp;lt; &amp;lt;(printf &amp;quot;Killing your dudes.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Delete all mail&amp;lt;ref name=&amp;quot;so_20121117_deletemail&amp;quot;&amp;gt;[[timaschew]]. ([[2012-11-17]]). “[https://stackoverflow.com/a/13430307 How do I purge a linux mail box with huge number of emails? [closed]]”. &#039;&#039;Stack Overflow&#039;&#039;. Accessed [[2023-06-06]].&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ mail -N&lt;br /&gt;
 &amp;amp; d *&lt;br /&gt;
 &amp;amp; quit&lt;br /&gt;
&lt;br /&gt;
===[[make]]===&lt;br /&gt;
&#039;&#039;See [[GNU Make]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compile source code according to a file named &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
Note, even with [[GNU make]], column 1 indentations REQUIRE a tab (i.e. `\t`), not a space (`\s`).&amp;lt;ref name=&amp;quot;se_20210701_maketabs&amp;quot;&amp;gt;[https://retrocomputing.stackexchange.com/users/79/stephen-kitt Stephen Kitt].  ([[2021-07-01]]).  “[https://retrocomputing.stackexchange.com/a/20293 Why does make only accept tab-indentation?]”  &#039;&#039;Stack Exchange&#039;&#039;.  Accessed [[2023-07-10]]. [https://web.archive.org/web/20230528004825/https://retrocomputing.stackexchange.com/questions/20292/why-does-make-only-accept-tab-indentation Archived] from the original on [[2023-05-28]].&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile multiple source code files with a single `make all` command.&amp;lt;ref name=&amp;quot;so_20110510_makemultiplefiles&amp;quot;&amp;gt;[https://stackoverflow.com/users/714501/cnicutar cnicutar].  ([[2011-05-10]]).  “[https://stackoverflow.com/a/5950445/10850071 Makefile to compile multiple C programs?]”.  &#039;&#039;Stack Overflow&#039;&#039;.  Accessed [[2023-07-13]].  [https://web.archive.org/web/20230714044550/https://stackoverflow.com/questions/5950395/makefile-to-compile-multiple-c-programs/5950445 Archived] from the original on [[2023-07-14]].&amp;lt;/ref&amp;gt; `Makefile` contents:&lt;br /&gt;
&lt;br /&gt;
 all: program1 program2&lt;br /&gt;
 &lt;br /&gt;
 program1: program1.c&lt;br /&gt;
     gcc -o program1 program1.c&lt;br /&gt;
 &lt;br /&gt;
 program2: program2.c&lt;br /&gt;
     gcc -o program2 program2.c&lt;br /&gt;
&lt;br /&gt;
===[[mdadm]]===&lt;br /&gt;
Software [[RAID]] manager.&lt;br /&gt;
&lt;br /&gt;
Check status of RAID device &amp;lt;code&amp;gt;/dev/md0&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;se_20120108_mmdadmcheck&amp;quot;&amp;gt;[[Gilles]]. ([[2012-01-08]]). “[https://unix.stackexchange.com/a/28642/411854 How to check &#039;mdadm&#039; RAIDs while running?]”. Accessed [[2023-03-26]]. [https://web.archive.org/web/20150925044124/http://unix.stackexchange.com/questions/28636/how-to-check-mdadm-raids-while-running/28642#28642 Archived] from the original on [[2015-09-25]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Check status of all RAID devices.&amp;lt;ref name=&amp;quot;se_20120108_mmdadmcheck&amp;quot; /&amp;gt;&lt;br /&gt;
 $ sudo cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
===mimetype===&lt;br /&gt;
Get file mimetype&lt;br /&gt;
 $ cat file.jpg | mimetype --stdin&lt;br /&gt;
&lt;br /&gt;
===mktemp===&lt;br /&gt;
Create a temporary directory.&lt;br /&gt;
 $ mktemp -d&lt;br /&gt;
 /tmp/tmp.FV7MlItXOs&lt;br /&gt;
&lt;br /&gt;
Create a temporary directory and store its name.&lt;br /&gt;
 $ myTempDir=&amp;quot;$(mktemp -d)&amp;quot;; declare -p myTempDir;&lt;br /&gt;
 declare -- myTempDir=&amp;quot;/tmp/tmp.kmHLhKvlQV&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Create a temporary file&lt;br /&gt;
 $ mktemp&lt;br /&gt;
 /tmp/tmp.lnq5aBZmuK&lt;br /&gt;
&lt;br /&gt;
Create a temporary file in a custom directory&lt;br /&gt;
 $ myDir=&amp;quot;$HOME/temp&amp;quot;; mkdir &amp;quot;$myDir&amp;quot;;&lt;br /&gt;
 $ mktemp -p &amp;quot;$myDir&amp;quot;&lt;br /&gt;
 /home/baltakatei/temp/tmp.YENA9Yp7lU&lt;br /&gt;
&lt;br /&gt;
Create a temporary file or directory with a custom name template.&lt;br /&gt;
 $ mktemp foo_XXX&lt;br /&gt;
 foo_yVu&lt;br /&gt;
 $ mktemp foo_XXXXXXXX&lt;br /&gt;
 foo_rVJOX8GE&lt;br /&gt;
 $ mktemp -d bar_XXXXXXXX&lt;br /&gt;
 bar_10Bt5tfy&lt;br /&gt;
&lt;br /&gt;
===[[mpv]]===&lt;br /&gt;
Use newline-delimited stdin list of file paths as playlist.&lt;br /&gt;
 $ find ~/Music/ -type f | mpv --playlist=-&lt;br /&gt;
&lt;br /&gt;
Enable shuffle&lt;br /&gt;
 $ mpv --shuffle&lt;br /&gt;
&lt;br /&gt;
Settings for fast playback (e.g. 2x){{bkc|[[2024-08-11]]: This option may cause issues with playback of some [[FLAC]] files.}}&lt;br /&gt;
 $ mpv --af=scaletempo=stride=15:overlap=1:search=15&#039;&lt;br /&gt;
&lt;br /&gt;
Play video with subtitle file&lt;br /&gt;
 $ mpv --embed-subs=&amp;quot;$filepath&amp;quot; video.mp4&lt;br /&gt;
&lt;br /&gt;
===[[neofetch]]===&lt;br /&gt;
Show system information without art&lt;br /&gt;
 $ neofetch --off&lt;br /&gt;
&lt;br /&gt;
Show system information without formatting or art.&lt;br /&gt;
 $ neofetch --stdout&lt;br /&gt;
&lt;br /&gt;
===[[nethogs]]===&lt;br /&gt;
Show data traffic (i.e. [[bandwidth]] usage) by process on network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ sudo nethogs eth0&lt;br /&gt;
&lt;br /&gt;
: Toggle between data rates and total data amounts with `m`.&lt;br /&gt;
&lt;br /&gt;
===[[notify-send]]===&lt;br /&gt;
Note (Debian): Installed via the [[libnotify-bin]] package.&lt;br /&gt;
&lt;br /&gt;
Create a system notification:&lt;br /&gt;
 $ notify-send &amp;quot;title&amp;quot; &amp;quot;body&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[openbox]]===&lt;br /&gt;
A window manager for [[LxQt]] and [[Lubuntu]].&lt;br /&gt;
&lt;br /&gt;
Reload configuration files.{{bkc|[[2024-08-21]]: Such as those kept at &amp;lt;code&amp;gt;/usr/share/themes/Mikachu/openbox-3/themerc&amp;lt;/code&amp;gt;.  }}&amp;lt;ref name=&amp;quot;askubuntu_20161006_openbox-window-resize-grab-area&amp;quot;&amp;gt;[https://askubuntu.com/users/248158/dk-bose DK Bose].  ([[2016-10-06]]).  “[https://askubuntu.com/a/834022 Size of grab area for resizing window in lubuntu]”.  Accessed [[2024-08-21]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ openbox --reconfigure&lt;br /&gt;
&lt;br /&gt;
===[[ots]]===&lt;br /&gt;
Use [[OpenTimestamps]] ([https://opentimestamps.org/ website]) to timestamp files against the [[Bitcoin]] blockchain. Program by [[Peter Todd]], a [[Bitcoin Core]] developer.&lt;br /&gt;
&lt;br /&gt;
Install Opentimestamps on Ubuntu 24 via [[pipx]].{{bkc|[[2025-01-18]]: [[pipx]] recommended to install [[ots]] due to [[PEP 668]] ([https://peps.python.org/pep-0668/ link] mandating partitioning operating system environment from user-space. }} Provides the &amp;lt;code&amp;gt;ots&amp;lt;/code&amp;gt; executable.&lt;br /&gt;
 $ sudo apt install pipx&lt;br /&gt;
 $ pipx install opentimestamps-client&lt;br /&gt;
&lt;br /&gt;
Timestamp &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt;. Creates timestamp file &amp;lt;code&amp;gt;file.txt.ots&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ ots s file.txt&lt;br /&gt;
 $ ots stamp file.txt&lt;br /&gt;
&lt;br /&gt;
Upgrade a timestamp file. Creates a backup file (&amp;lt;code&amp;gt;file.txt.ots.bak&amp;lt;/code&amp;gt;) if necessary.&lt;br /&gt;
 $ ots upgrade file.txt.ots&lt;br /&gt;
 $ ots u file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Verify a timestamp file.&lt;br /&gt;
 $ ots verify file.txt.ots&lt;br /&gt;
 $ ots v file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Verify a specific file against a specific timestamp file.&lt;br /&gt;
 $ ots v -f file.txt file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Timestamp all files in working directory that lack a timestamp, running &amp;lt;code&amp;gt;ots&amp;lt;/code&amp;gt; on 1000 files at a time.&lt;br /&gt;
 $ din=&amp;quot;$(pwd)&amp;quot;; while read -r line; do if [[ ! -f &amp;quot;${line}.ots&amp;quot; ]]; then printf &amp;quot;%s\0&amp;quot; &amp;quot;$line&amp;quot;; fi; done &amp;lt; &amp;lt;(find &amp;quot;$din&amp;quot; -mindepth 1 -maxdepth 1 -type f ! -name &amp;quot;*.ots&amp;quot; | shuf; ) | xargs -0 -L 1000 ots s&lt;br /&gt;
&lt;br /&gt;
===[[pandoc]]===&lt;br /&gt;
Convert [[markdown]] text file into mediawiki code.&amp;lt;ref name=&amp;quot;so_20100926_markdown-to-mediawiki&amp;quot;&amp;gt;[https://stackoverflow.com/users/315013/applicative applicative].  ([[2010-09-26]]).  “[https://stackoverflow.com/a/3796608 Are there any tools to convert markdown to Wiki text in other formats]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-02-27]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ pandoc -f markdown -t mediawiki -o output.wc input.txt&lt;br /&gt;
&lt;br /&gt;
===[[par2]]===&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|par2}}&lt;br /&gt;
&lt;br /&gt;
Create parity files of &amp;lt;code&amp;gt;archive.tar.xz&amp;lt;/code&amp;gt; with default settings. &lt;br /&gt;
 $ par2 create archive.tar.xz.par2 archive.tar.xz&lt;br /&gt;
&lt;br /&gt;
===[[GNU parallel|parallel]]===&lt;br /&gt;
&#039;&#039;See [[GNU parallel]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Duplicate a set of directories (non-recursively) (e.g. home sub-directories). Metadata not copied.&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -mindepth 1 -maxdepth 1 -type d | parallel mkdir &amp;quot;$HOME/{}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hash every file in the home directory.&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel --jobs=&amp;quot;&amp;quot; sha256sum &#039;{}&#039;               # use all CPUs&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel --jobs=&amp;quot;25%&amp;quot; sha256sum &#039;{}&#039;  # use at most 25% of CPU cores&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel sha256sum &#039;{}&#039;               # &lt;br /&gt;
&lt;br /&gt;
Run a thread for every item in an array.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ myArray=(&amp;quot;jan&amp;quot;); myArray=(&amp;quot;feb&amp;quot;); myArray=(&amp;quot;mar&amp;quot;);&lt;br /&gt;
$ declare -p myArray&lt;br /&gt;
declare -a myArray=([0]=&amp;quot;jan&amp;quot; [1]=&amp;quot;feb&amp;quot; [2]=&amp;quot;mar&amp;quot;)&lt;br /&gt;
$ parallel echo &#039;{}&#039; ::: &amp;quot;${myArray[@]}&amp;quot;&lt;br /&gt;
jan&lt;br /&gt;
feb&lt;br /&gt;
mar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supply different arguments for each job with an `--arg-file`.&lt;br /&gt;
 $ printf &amp;quot;foo\tbee\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ printf &amp;quot;bar\tboo\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ printf &amp;quot;baz\ttax\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ parallel --col-sep &#039;\t&#039; --arg-file args.txt echo &#039;{2}&#039; &#039;{1}&#039;;&lt;br /&gt;
 bee foo&lt;br /&gt;
 boo bar&lt;br /&gt;
 tax baz&lt;br /&gt;
&lt;br /&gt;
Avoid OOM by suspending jobs on low memory via &amp;lt;code&amp;gt;--memsuspend 512M&amp;lt;/code&amp;gt; (e.g. 512 [[mebibytes]]), which suspends job if less than &amp;lt;code&amp;gt;2 * 512 = 1024&amp;lt;/code&amp;gt; mebibytes memory free. If only one job remains, it will not suspend.&lt;br /&gt;
 $ seq 1 10 | parallel --memsuspend 512M echo &#039;{}&#039;;&lt;br /&gt;
&lt;br /&gt;
===paste===&lt;br /&gt;
List contents of three files as columns.&lt;br /&gt;
 $ printf &amp;quot;foo\nbar\nbaz\n&amp;quot; &amp;gt; 1.txt&lt;br /&gt;
 $ printf &amp;quot;bee\nboo\ntax\n&amp;quot; &amp;gt; 2.txt&lt;br /&gt;
 $ paste 1.txt 2.txt&lt;br /&gt;
 foo	bee&lt;br /&gt;
 bar	boo&lt;br /&gt;
 baz	tax&lt;br /&gt;
&lt;br /&gt;
Split lines of a single file into columns&lt;br /&gt;
 $ seq 1 13 | paste - - -  # three columns&lt;br /&gt;
 1	2	3&lt;br /&gt;
 4	5	6&lt;br /&gt;
 7	8	9&lt;br /&gt;
 10	11	12&lt;br /&gt;
 13&lt;br /&gt;
&lt;br /&gt;
===pipx===&lt;br /&gt;
[[pipx]] is a tool that automates the creation of [[virtual environment]]s when installing command-line [[python]] packages via [[pip]].&lt;br /&gt;
&lt;br /&gt;
Install [[pipx]].&lt;br /&gt;
 $ sudo apt install pipx&lt;br /&gt;
 $ pipx ensurepath   # make sure PATH environment variable contains pipx directories&lt;br /&gt;
&lt;br /&gt;
Install [[OpenAI]] [[Whisper (speech recognition system)|Whisper]]&lt;br /&gt;
 $ sudo apt install ffmpeg   # get ffmpeg dependency&lt;br /&gt;
 $ pipx install openai-whisper&lt;br /&gt;
&lt;br /&gt;
Upgrade OpenAI Whisper&lt;br /&gt;
 $ pipx upgrade openai-whisper  # as opposed to &#039;pip install -U openai-whisper&#039;&lt;br /&gt;
&lt;br /&gt;
===play ([[sox]])===&lt;br /&gt;
Play an audio file from the [[sox]] package. (limited to formats such as MP3, WAV, AIFF, OGG)&lt;br /&gt;
 $ play ~/Music/song.wav&lt;br /&gt;
&lt;br /&gt;
Play an audio file via [[cron]]. To do so, insert the following lines into a [[bash]] script run by [[cron]] (assuming [[Debian]] system)&amp;lt;ref name=&amp;quot;askubuntu_20180610_cron-chime&amp;quot;&amp;gt;[[WinEunuuchs2Unix]].  ([[2018-06-10]]).  “[https://askubuntu.com/a/1045344 Help using crontab to play a sound]”.  [[askubuntu.com]].  Accessed [[2025-10-11]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
(&lt;br /&gt;
  export XDG_RUNTIME_DIR=/run/user/$(id -u);&lt;br /&gt;
  play --vol 0.2 $HOME/Music/chime.wav;&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[ps]]===&lt;br /&gt;
Show process PIDs and full commands.&lt;br /&gt;
 $ ps -eo pid,args&lt;br /&gt;
&lt;br /&gt;
===[[pdftk]]===&lt;br /&gt;
Install{{bkc|[[2025-01-26]]: As of [[2025]], &amp;lt;code&amp;gt;$ sudo apt install pdftk&amp;lt;/code&amp;gt; no longer works, likely due to licensing issues with [[PDF Labs]] ([https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ web]) }}&amp;lt;ref name=&amp;quot;gitlab_2023_pdftk-java&amp;quot;&amp;gt;[[Marc Vinyals]].  ([[2023]]).  “[https://gitlab.com/pdftk-java/pdftk pdftk-java]”.  &#039;&#039;[[gitlab.com]]&#039;&#039;.  Accessed [[2025-01-26]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo apt install pdftk-java &lt;br /&gt;
&lt;br /&gt;
Combine PDFs&lt;br /&gt;
 $ pdftk doc1.pdf doc2.pdf doc3.pdf cat output output.pdf&lt;br /&gt;
&lt;br /&gt;
Extract page range from a PDF. (e.g. extract first 13 pages)&lt;br /&gt;
 $ pdftk input.pdf cat 1-13 output output.pdf&lt;br /&gt;
&lt;br /&gt;
===[[pdftotext]]===&lt;br /&gt;
Install.&lt;br /&gt;
 $ sudo apt install poppler-utils&lt;br /&gt;
&lt;br /&gt;
Convert PDF to text. (Note: If text is [[Raster graphics|rasterized]], use [[#tesseract|tesseract]] instead). &lt;br /&gt;
 $ pdftotext output.pdf output.txt&lt;br /&gt;
&lt;br /&gt;
===[[pgrep]]===&lt;br /&gt;
Exit early if a specific process (e.g. &amp;lt;code&amp;gt;yt-dlp&amp;lt;/code&amp;gt;) is already running.&lt;br /&gt;
  $ if pgrep &amp;quot;yt-dlp&amp;quot; 1&amp;gt;/dev/random 2&amp;gt;&amp;amp;1; then exit 1; fi;&lt;br /&gt;
&lt;br /&gt;
===printf===&lt;br /&gt;
====GNU Coreutils====&lt;br /&gt;
Print a &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; character.&amp;lt;ref name=&amp;quot;so_20130221_printf-exclam&amp;quot;&amp;gt;[https://stackoverflow.com/users/465183/gilles-qu%c3%a9not Giles Quénot].  ([[2013-02-21]]).  “[https://stackoverflow.com/a/15011849 How to printf an exclamation mark in bash?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2026-01-15]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ printf &amp;quot;\041\n&amp;quot;&lt;br /&gt;
 !&lt;br /&gt;
&lt;br /&gt;
Round a float to nearest integer&amp;lt;ref&amp;gt;{{bk}}: [[2023-09-09]]: Tested with GNU Coreutils 8.32&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;;&lt;br /&gt;
  14&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  14.29&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.1f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  14.3&lt;br /&gt;
  $ myVar=&amp;quot;-14.28571&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  -14.29&lt;br /&gt;
  $ myVar=&amp;quot;28.57142&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  28.57&lt;br /&gt;
  $ myVar=&amp;quot;28.57142&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
: Note, GNU Coreutils printf uses “[[Rounding|round to even]]” (i.e. “Bankerʼs rounding”) for cases when 5 must be rounded.&amp;lt;ref name=&amp;quot;se_20151101_printfrounding&amp;quot;&amp;gt;user79742.  ([[2015-11-01]]).  “[https://unix.stackexchange.com/a/240113 Weird float rounding behavior with printf]”.  &#039;&#039;[[unix.stackexchange.com]]&#039;&#039;.  Accessed [[2023-10-04]].  [https://web.archive.org/web/20231004195404/https://unix.stackexchange.com/questions/240112/weird-float-rounding-behavior-with-printf/240113#240113 Archived] from the original on [[2023-10-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ myVar=&amp;quot;5.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  6&lt;br /&gt;
  $ myVar=&amp;quot;6.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot; &lt;br /&gt;
  6&lt;br /&gt;
  $ myVar=&amp;quot;7.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  8&lt;br /&gt;
  $ myVar=&amp;quot;8.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot; &lt;br /&gt;
  8&lt;br /&gt;
&lt;br /&gt;
Print integer with leading zeroes. (see [https://stackoverflow.com/a/18460742/10850071 ref])&lt;br /&gt;
&lt;br /&gt;
 $ n=7; printf &amp;quot;%05d\n&amp;quot; &amp;quot;$n&amp;quot;;&lt;br /&gt;
 00007&lt;br /&gt;
&lt;br /&gt;
Print a bash array (see [https://stackoverflow.com/a/15692004/10850071 ref])&lt;br /&gt;
&lt;br /&gt;
 $ declare -a my_array; my_array+=(&amp;quot;jan&amp;quot;); my_array+=(&amp;quot;feb&amp;quot;);&lt;br /&gt;
 $ printf &#039;%s\n&#039; &amp;quot;${my_array[@]}&amp;quot;;&lt;br /&gt;
 jan&lt;br /&gt;
 feb&lt;br /&gt;
&lt;br /&gt;
Print a progress bar&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 total_iterations=100&lt;br /&gt;
 current_iteration=0&lt;br /&gt;
 &lt;br /&gt;
 while [ $current_iteration -lt $total_iterations ]; do&lt;br /&gt;
     # Your actual loop content goes here&lt;br /&gt;
     sleep 0.1 # This is just an example, replace with your actual task&lt;br /&gt;
 &lt;br /&gt;
     # Calculate progress percentage&lt;br /&gt;
     progress_percentage=$(( 100 * current_iteration / total_iterations ))&lt;br /&gt;
 &lt;br /&gt;
     # Print progress percentage without causing scrolling&lt;br /&gt;
     printf &amp;quot;\rProgress: %3d%%&amp;quot; $progress_percentage&lt;br /&gt;
 &lt;br /&gt;
     # Increment the iteration counter&lt;br /&gt;
     current_iteration=$(( current_iteration + 1 ))&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Print a newline character to move to the next line after the loop is done&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
Convert hexadecimal into decimal&lt;br /&gt;
 $ printf &amp;quot;%u\n&amp;quot; &amp;quot;0xFFFF&amp;quot;&lt;br /&gt;
 65535&lt;br /&gt;
&lt;br /&gt;
====C stdio.h====&lt;br /&gt;
Print an int as a hexadecimal&lt;br /&gt;
&lt;br /&gt;
 int a=17; printf(&amp;quot;%x\n&amp;quot;,a);&lt;br /&gt;
&lt;br /&gt;
Print an int as a binary (&amp;lt;code&amp;gt;glibc &amp;gt;2.35&amp;lt;/code&amp;gt;, check via &amp;lt;code&amp;gt;$ ldd --version&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 int main()&lt;br /&gt;
   int a=1023; printf(&amp;quot;%b\n&amp;quot;,a); return 0;&lt;br /&gt;
&lt;br /&gt;
: When compiled with &amp;lt;code&amp;gt;gcc-12&amp;lt;/code&amp;gt; (previous versions throw errors) and glibc &amp;gt;2.35, this prints:&lt;br /&gt;
&lt;br /&gt;
 1111111111&lt;br /&gt;
&lt;br /&gt;
===[[rev]]===&lt;br /&gt;
Get a counted list of unique file extensions in the current working directory.&lt;br /&gt;
&lt;br /&gt;
 $ find . -mindepth 1 -maxdepth 1 -type f | rev | cut -d&#039;.&#039; -f1 | rev | sort | uniq -c | sort -hk1;&lt;br /&gt;
&lt;br /&gt;
: An explanation:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ find . -mindepth 1 -maxdepth 1 -type f | \  # Get a list of files in current working directory.&lt;br /&gt;
  rev | \              # Reverse order of characters within each line.&lt;br /&gt;
  cut -d&#039;.&#039; -f1 | \    # Cut all characters except for those before the final `.` in the path.&lt;br /&gt;
  rev | \              # Restore order of characters within each line.&lt;br /&gt;
  sort | \             # Sort for uniq.&lt;br /&gt;
  uniq -c | \          # List and count unique lines.&lt;br /&gt;
  sort -hk1;           # Sort by line counts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[rsync]]===&lt;br /&gt;
Note: These commands assume use of &#039;&#039;rsync&#039;&#039; version &amp;lt;code&amp;gt;3.2.7 protocol version 31&amp;lt;/code&amp;gt;, which is available on [[Debian]] version &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|rsync}}&lt;br /&gt;
&lt;br /&gt;
Exclude all dotfiles or dotdirectories at any directory level.&lt;br /&gt;
 $ echo &amp;quot;.*/**&amp;quot; &amp;gt;&amp;gt; exclude.txt&lt;br /&gt;
 $ rsync -avu --exclude-from=exclude.txt somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
&lt;br /&gt;
Copy all files contained within a directory named &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; located within &amp;lt;code&amp;gt;somepath&amp;lt;/code&amp;gt; into a directory named &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; within &amp;lt;code&amp;gt;anotherpath&amp;lt;/code&amp;gt;, preserving file attributes (e.g. user:group, read/write/execute permissions), and overwriting existing files within &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; if they differ in modification date and/or size from those of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;. The forward slashes after &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; are significant; omitting them may cause the creation of a new directory layer instead of synchronizing the file trees of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
&lt;br /&gt;
Make the contents of &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; exactly match that of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;, overwriting and deleting files as required in &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; via the &amp;lt;code&amp;gt;--delete-before&amp;lt;/code&amp;gt; command, performing all deletions before file copying begins. This is useful for updating a backup of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; at &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --delete-before somepath/SOURCE/ anotherpath/somedir/DEST/&lt;br /&gt;
&lt;br /&gt;
Copy files from a local &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; in a remote user&#039;s home directory (e.g. &amp;lt;code&amp;gt;/home/username/DEST/&amp;lt;/code&amp;gt;) via the [[ssh]] command.&lt;br /&gt;
 $ rsync -avu -e &#039;ssh&#039; somepath/SOURCE/ username@hostname:DEST/&lt;br /&gt;
&lt;br /&gt;
Copy only files containing &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt; in their filenames from a &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;. This preserves the directory tree of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
:: Exclude &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt;files larger than 100 000 000 bytes.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; --max-size=100MB --remove-source-files somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
: Move (i.e. extract) only the files containing &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt; in their file names, deleting them from &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; if successfully copied to &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; --remove-source-files somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
Recreate full path at destination.&amp;lt;ref name=&amp;quot;askubuntu_20141121_rsync-preserve-dirtree&amp;quot;&amp;gt;[https://askubuntu.com/users/193328/jan jan].  ([[2014-11-21]]).  “[https://askubuntu.com/a/552122 Preserve directory tree while copying with rsync]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2024-04-01]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ rsync -avu -R somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
 $ ls anotherpath/DEST/somepath/SOURCE/&lt;br /&gt;
&lt;br /&gt;
===sed===&lt;br /&gt;
[https://www.gnu.org/software/sed/manual/sed.html GNU sed manual].&lt;br /&gt;
&lt;br /&gt;
Replace first instance of a string.&lt;br /&gt;
 $ echo &amp;quot;foo foo&amp;quot; | sed &#039;s/oo/ee/&#039;&lt;br /&gt;
 fee foo&lt;br /&gt;
&lt;br /&gt;
Replace all instances of a string.&lt;br /&gt;
 $ echo &amp;quot;foo foo&amp;quot; | sed &#039;s/oo/ee/g&#039;&lt;br /&gt;
 fee fee&lt;br /&gt;
&lt;br /&gt;
Replace all instances of a string in a file (CAUTION: modifies the file):&lt;br /&gt;
 $ printf &amp;quot;foo\n&amp;quot; &amp;amp;gt; bar.txt&lt;br /&gt;
 $ cat bar.txt&lt;br /&gt;
 foo&lt;br /&gt;
 $ sed -i &#039;s/oo/ee/g&#039; bar.txt&lt;br /&gt;
 $ cat bar.txt&lt;br /&gt;
 fee&lt;br /&gt;
&lt;br /&gt;
Append something to the start of each line ([https://unix.stackexchange.com/a/443150 ref]):&lt;br /&gt;
 $ printf &amp;quot;bar\nbaz\n&amp;quot; | sed &#039;s/^/foo/&#039;&lt;br /&gt;
 foobar&lt;br /&gt;
 foobaz&lt;br /&gt;
 $ printf &amp;quot;bar\nbaz\n&amp;quot; | sed &#039;s~^~foo~&#039;   # use ~ instead of / as regex delimiter&lt;br /&gt;
 foobar&lt;br /&gt;
 foobaz&lt;br /&gt;
&lt;br /&gt;
Delete blank lines. (see [https://unix.stackexchange.com/a/76066/411854 ref])&lt;br /&gt;
 $ printf &amp;quot;foo\n\nbar\n&amp;quot;&lt;br /&gt;
 foo&lt;br /&gt;
 &lt;br /&gt;
 bar&lt;br /&gt;
 $ printf &amp;quot;foo\n\nbar\n&amp;quot; | sed &#039;/^$/d&#039;&lt;br /&gt;
 foo&lt;br /&gt;
 bar&lt;br /&gt;
&lt;br /&gt;
Remove an initial `./` from the start of file lists produced by `find` whether newlines or NULL chars are used as list delimiters. Example: [[sumdir]] v0.1.2&lt;br /&gt;
 $ sed -E &#039;s/(^|\x00)\.\//\1/g&#039;&lt;br /&gt;
&lt;br /&gt;
Print specific lines of a file. (i.e. get a specific line from a file)&lt;br /&gt;
 $ some_command | sed -n &#039;2p&#039;  # prints line 2 of standard input&lt;br /&gt;
 $ sed -n &#039;2p&#039; file.txt        # prints line 2&amp;lt;ref&amp;gt;{{bk}}; [[2024-01-29]]: See https://stackoverflow.com/a/74076669&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sed &#039;2q;d&#039; big_file.txt     # prints line of a very large file.&amp;lt;ref&amp;gt;{{bk}}; [[2024-01-29]]: See https://stackoverflow.com/a/30657175 &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sed -n &#039;2p&#039;&lt;br /&gt;
 $ sed -n &#039;2,5p&#039; file.txt      # prints lines 2 through 5 inclusive.{{bkc|[[2025-04-04]]: Consider using [[#tail]] and [[#head]] &amp;lt;code&amp;gt;$ seq 1 100 &amp;amp;#124; tail -n+50 &amp;amp;#124; head -n4&amp;lt;/code&amp;gt; (get values 50 to 53).}}&lt;br /&gt;
 $ sed -n &#039;2p;5p;&#039; file.txt    # prints only lines 2 and 5.&lt;br /&gt;
&lt;br /&gt;
Substitute special characters&lt;br /&gt;
 $ echo &amp;quot;2 * 5 = 8&amp;quot; | sed -E -e &#039;s/*/x/&#039;    # doesn&#039;t work because asterisk is special regex&lt;br /&gt;
 sed: -e expression #1, char 6: Invalid preceding regular expression&lt;br /&gt;
 $ echo &amp;quot;2 * 5 = 10&amp;quot; | sed -E -e &#039;s/\*/x/&#039;  # works&lt;br /&gt;
&lt;br /&gt;
===seq===&lt;br /&gt;
Generate a sequence of integers, newline-delimited.&lt;br /&gt;
 $ seq 1 3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
&lt;br /&gt;
===sfill===&lt;br /&gt;
&#039;&#039;Installable via &amp;lt;code&amp;gt;apt install secure-delete&amp;lt;/code&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill all available freespace by writing random noise to a file in directory &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ sfill -ll ./dir/&lt;br /&gt;
&lt;br /&gt;
===[[ssh]]===&lt;br /&gt;
Connect to a local machine&#039;s [[Syncthing]] instance via [[firefox]].&lt;br /&gt;
 $ firefox 127.0.0.1:8384&lt;br /&gt;
&lt;br /&gt;
Connect to a remote server&#039;s [[Syncthing]] instance via [[ssh]] port forwarding and [[firefox]].&lt;br /&gt;
 $ ssh -L 127.0.0.1:8388:127.0.0.1:8384 user@hostname&lt;br /&gt;
 $ firefox 127.0.0.1:8388&lt;br /&gt;
&lt;br /&gt;
Get a host&#039;s SSH fingerprint&amp;lt;ref name=&amp;quot;se_20160509_sshkeyscan&amp;quot;&amp;gt;[[Anthony Geoghegan]]. ([[2016-05-09]]). “[https://unix.stackexchange.com/a/268692/411854 Get SSH server key fingerprint]”. Accessed [[2023-06-25]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub&lt;br /&gt;
&lt;br /&gt;
: Get all hostsʼ SSH fingerprints.&lt;br /&gt;
 $ ssh-keygen -lf &amp;lt;(ssh-keyscan localhost 2&amp;gt;/dev/random; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configure [[gnupg]], [[ssh]], and smartcard on [[macOS]]====&lt;br /&gt;
Install necessary [[homebrew]] packages&lt;br /&gt;
 % [[#brew|brew]] update &amp;amp;&amp;amp; brew upgrade;&lt;br /&gt;
 % brew install gnupg pinentry-mac&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ gpg -K&amp;lt;/code&amp;gt; should have a line like this with &amp;lt;code&amp;gt;&amp;amp;#91;A&amp;amp;#93;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ssb&amp;gt;  rsa4096/0x5F9D26B9A598A2D3 2018-05-16 [A] [expires: 2026-07-07]&lt;br /&gt;
&lt;br /&gt;
Configure [[GnuPG]] to use &amp;lt;code&amp;gt;pinentry-mac&amp;lt;/code&amp;gt;&lt;br /&gt;
 % which pinentry;&lt;br /&gt;
 /opt/homebrew/bin/pinentry-mac;&lt;br /&gt;
 % which pinentry-mac &amp;gt;&amp;gt; ~/.gnupg/gpg-agent.conf;&lt;br /&gt;
&lt;br /&gt;
Configure [[GnuPG]] to be able to talk to [[ssh]] by:&lt;br /&gt;
: Adding these lines to &amp;lt;code&amp;gt;~/.gnupg/gpg-agent.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-cache-ttl 300&lt;br /&gt;
max-cache-ttl 999999&lt;br /&gt;
enable-ssh-support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: and exporting these environment variables to your shell (probably &amp;lt;code&amp;gt;~/.[[zsh]]rc&amp;lt;/code&amp;gt; as of [[2024]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export GPG_TTY=&amp;quot;$(tty)&amp;quot;;&lt;br /&gt;
export SSH_AUTH_SOCK=&amp;quot;$(gpgconf --list-dirs agent-ssh-socket)&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Export the [[ssh]] public key from your [[OpenPGP]] key via [[GnuPG]]:&lt;br /&gt;
: Get public key line to add to remote machine&lt;br /&gt;
 $ gpg --export-ssh-key YOUR_KEY_ID &amp;gt; my_gpg_ssh_pubkey.txt&lt;br /&gt;
&lt;br /&gt;
: This should look like:&lt;br /&gt;
 $ cat my_gpg_ssh_pubkey.txt &lt;br /&gt;
 $ ssh-rsa AAAAB3NzaC1yc2EAAAA… user@host&lt;br /&gt;
&lt;br /&gt;
: Add ssh pubkey to remote machine by&lt;br /&gt;
:: running this command remotely (via a preëxisting [[ssh]] session or by visiting the remote machine physically)&lt;br /&gt;
 remote$ echo &amp;quot;ssh-rsa AAAAB3NzaC1yc2EAAAA… user@host&amp;quot; &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
:: or by running this comand locally:&lt;br /&gt;
 $ gpg --export-ssh-key YOUR_KEY_ID | ssh user@remote &#039;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&#039;&lt;br /&gt;
&lt;br /&gt;
Restart [[gnupg]] to apply configuration changes:&lt;br /&gt;
 $ gpgconf --kill gpg-agent;&lt;br /&gt;
 $ gpgconf --launch gpg-agent;&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
 $ ssh user@remote&lt;br /&gt;
&lt;br /&gt;
: If you never have to use the server&#039;s password for the &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; user, then you succeeded.&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|ssh}}&lt;br /&gt;
&lt;br /&gt;
===[[sort]]===&lt;br /&gt;
Sort &amp;lt;code&amp;gt;[[du]]&amp;lt;/code&amp;gt; results on human-readable file size of current working directory (non-recursively).&lt;br /&gt;
 $ du -hd1 ./ | sort -hk1&lt;br /&gt;
&lt;br /&gt;
Sort part of a checksum file while ignoring some initial lines (e.g. a checksum file generated by &amp;lt;code&amp;gt;sumdir&amp;lt;/code&amp;gt;). Sorts every line except for the first three lines which it leaves at the top; the output is written to &amp;lt;code&amp;gt;/tmp/0.txt&amp;lt;/code&amp;gt;. Uses the &amp;lt;code&amp;gt;-k2&amp;lt;/code&amp;gt; (i.e. &amp;quot;key 2&amp;quot;) option of &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt; which says to sort by the file name, not the hash (hash is first whitespace-separated entry, file name is the second).&lt;br /&gt;
&lt;br /&gt;
 file=.SUMSHA256--20230126T050458+0000; ( cat &amp;quot;$file&amp;quot; | head -n3; cat &amp;quot;$file&amp;quot; | tail -n+4 | sort -k2; ) &amp;gt; /tmp/0.txt&lt;br /&gt;
&lt;br /&gt;
Sort on the third field of comma-delimited lines&lt;br /&gt;
 $ printf &amp;quot;1,foo,kobo\n2,bar,kaela\n3,baz,zeta\n&amp;quot; | sort -t&#039;,&#039; -k3&lt;br /&gt;
 2,bar,kaela&lt;br /&gt;
 1,foo,kobo&lt;br /&gt;
 3,baz,zeta&lt;br /&gt;
&lt;br /&gt;
Remove duplicate lines without sorted result (preserving first copied unique line). (see [https://stackoverflow.com/a/20639730/10850071 ref])&lt;br /&gt;
 $ myVar=&amp;quot;$( printf &amp;quot;gundam\ninuyasha\ngundam\nbleach\ngundam\nnaruto\ngundam\n&amp;quot; )&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot; | cat -n | sort -uk2 | sort -n | cut -f2-&lt;br /&gt;
 gundam&lt;br /&gt;
 inuyasha&lt;br /&gt;
 bleach&lt;br /&gt;
 naruto&lt;br /&gt;
&lt;br /&gt;
: Preserving last unique copied line.&lt;br /&gt;
 echo &amp;quot;$myVar&amp;quot; | tac | cat -n | sort -uk2 | sort -n | cut -f2- | tac&lt;br /&gt;
 inuyasha&lt;br /&gt;
 bleach&lt;br /&gt;
 naruto&lt;br /&gt;
 gundam&lt;br /&gt;
&lt;br /&gt;
===[[stdbuf]]===&lt;br /&gt;
A [[GNU Coreutils]] program that controls how stdin, stdout, and error data is passed in and out of a program.&lt;br /&gt;
&lt;br /&gt;
Read input from &#039;&#039;stdin&#039;&#039; and pass through output to &#039;&#039;stdout&#039;&#039; without any buffering.&amp;lt;ref name=&amp;quot;se_20110619_stdbuf&amp;quot;&amp;gt;[[a3nm]]. ([[2011-06-19]]). “[https://unix.stackexchange.com/a/25378 Turn off buffering in pipe]”. &#039;&#039;Stack Exchange&#039;&#039;. Accessed [[2023-06-06]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ stdbuf -i0 -o0 -e0 command&lt;br /&gt;
&lt;br /&gt;
: Example: Continuously filtering [[journalctl]] output to capture &amp;lt;code&amp;gt;apache-access&amp;lt;/code&amp;gt; lines while discarding the first 7 space-delimited fields of each line. If &#039;&#039;stdbuf&#039;&#039; is not used in this type of scenario, [[tr]] and [[cut]] may fail to immediately display important lines as they arrive from &#039;&#039;journalctl&#039;&#039;, choosing to wait until a buffer is filled before displaying them (defeating the purpose of the &amp;lt;code&amp;gt;--follow&amp;lt;/code&amp;gt; option of &#039;&#039;journalctl&#039;&#039;).&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
journalctl --all --output=short-iso --since=-7d --follow |\&lt;br /&gt;
  grep --line-buffered -Eiv &amp;quot; 404 &amp;quot; |\&lt;br /&gt;
  grep --line-buffered &amp;quot;apache-access&amp;quot; |\&lt;br /&gt;
  stdbuf -i0 -o0 -e0 tr -s &#039; &#039; |\&lt;br /&gt;
  stdbuf -i0 -o0 -e0 cut -d&#039; &#039; -f8- -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[strace]]===&lt;br /&gt;
Read stderr of a backgrounded and disowned process with process ID &amp;lt;code&amp;gt;pid&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ strace -p &amp;quot;$pid&amp;quot; -e trace=write&lt;br /&gt;
&lt;br /&gt;
===su===&lt;br /&gt;
Open a shell as root.&lt;br /&gt;
 alice@host: sudo su -&lt;br /&gt;
 root@host: whoami&lt;br /&gt;
 root&lt;br /&gt;
&lt;br /&gt;
Open a &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; shell as another user, e.g. &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;.&lt;br /&gt;
 alice@host: whoami&lt;br /&gt;
 alice&lt;br /&gt;
 alice@host: sudo su - www-data -s /bin/bash&lt;br /&gt;
 [sudo] password for alice:&lt;br /&gt;
 www-data@host: whoami&lt;br /&gt;
 www-data&lt;br /&gt;
&lt;br /&gt;
===sumdir===&lt;br /&gt;
A script by [[Christopher Lovejoy]] (used with &amp;lt;code&amp;gt;checkdir&amp;lt;/code&amp;gt;). [https://github.com/monking/shell-utilities/blob/main/sumdir Source at GitHub].&lt;br /&gt;
&lt;br /&gt;
Create checksum of files in working directory recursively, excluding files with names: ending in &amp;lt;code&amp;gt;.asc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ots&amp;lt;/code&amp;gt; and files starting with &amp;lt;code&amp;gt;.SUM&amp;lt;/code&amp;gt;. Resulting file has pattern: &amp;lt;code&amp;gt;.SUM${digest_name}&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;.SUMB2--20230128T013153+0000&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ sumdir -a sha256 -r -x &amp;quot;*.asc&amp;quot; -x &amp;quot;*.ots&amp;quot; -x &amp;quot;.SUM*&amp;quot;&lt;br /&gt;
 $ sumdir -a b2 -r -x &amp;quot;*.asc&amp;quot; -x &amp;quot;*.ots&amp;quot; -x &amp;quot;.SUM*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===swapoff===&lt;br /&gt;
&#039;&#039;Possibly [[Ubuntu]]-specific&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Temporarily all swap file entries in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.{{bkc|[[2025-01-21]]: Generally, to permanently disable swap, comment out the relevant swap lines in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
 $ sudo swapoff -a&lt;br /&gt;
&lt;br /&gt;
===[[tail]]===&lt;br /&gt;
Get last 4 lines of a stdin steam.&lt;br /&gt;
 $ seq 1 10 | tail -n4&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
Get all lines, but start on line 4.&lt;br /&gt;
 $ seq 1 10 | tail -n+4&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
{{Anchor|tail-slice}}{{Anchor|tail-slice-lines}}Get lines 4 through 6.&amp;lt;ref name=&amp;quot;se_20131009_print-lines-tail-head&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/22222/terdon terdon].  ([[2013-10-09]]).  “[https://unix.stackexchange.com/a/94320 Efficient way to print lines from a massive file using awk, sed, or something else?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2025-04-04]].  &amp;lt;/ref&amp;gt; Note: is more efficient than [[#sed|sed]] or [[#awk|awk]] when processing large files.&lt;br /&gt;
 $ seq 1 10 | tail -n+4 | head -n3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
: Get lines 4 through 6 via variables and Bash arithmetic.&lt;br /&gt;
 $ start=4; end=6; seq 1 10 | tail -n+${start} | head -n$((end - start + 1))&lt;br /&gt;
&lt;br /&gt;
{{Anchor|tail-slice-bytes}}Print 4th to 7th bytes of a seekable file. (see [[#head-slice-bytes|#head]] for non-seekable case)&lt;br /&gt;
 $ selStart=$((4-1)); selEnd=$((7-1)); selCount=$((selEnd-selStart+1));&lt;br /&gt;
 $ tail --bytes=+$((selStart+1)) -- foo.txt | head --bytes=$((selCount));  # GNU Coreutils 8.32&lt;br /&gt;
 $ tail -c +$((selStart+1)) -- foo.txt | head -c $((selCount));  # BSD/macOS&lt;br /&gt;
&lt;br /&gt;
===[[tar]]===&lt;br /&gt;
&#039;&#039;See [[File compression notes]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;some_dir.rar&amp;lt;/code&amp;gt; out of the contents of the directory &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ tar -cf some_dir.rar some_dir&lt;br /&gt;
&lt;br /&gt;
Extract a compressed archive (e.g. &amp;lt;code&amp;gt;.tar.xz&amp;lt;/code&amp;gt;) in the current working directory.&lt;br /&gt;
 $ tar -xf archive.tar.xz&lt;br /&gt;
&lt;br /&gt;
: Extract to a different directory &amp;lt;code&amp;gt;some/path/&amp;lt;/code&amp;gt;. (The positioning of &amp;lt;code&amp;gt;-C&amp;lt;/code&amp;gt; is important.)&lt;br /&gt;
 $ tar -xf archive.tar.xz -C some/path/&lt;br /&gt;
&lt;br /&gt;
===tee===&lt;br /&gt;
Echo stdout to stderr ([https://stackoverflow.com/a/3142166/10850071 ref]):&lt;br /&gt;
 $ echo &amp;quot;This is standard error&amp;quot; | tee /dev/stderr | sed &#039;s/error/out/g&#039;&lt;br /&gt;
 This is standard error&lt;br /&gt;
 This is standard out&lt;br /&gt;
&lt;br /&gt;
===[[Tesseract (software)|tesseract]]===&lt;br /&gt;
Install.&lt;br /&gt;
 $ sudo apt install tesseract-ocr&lt;br /&gt;
 $ sudo apt install tesseract-ocr-eng  # english&lt;br /&gt;
 $ sudo apt install tesseract-ocr-osd  # orientation and script detection&lt;br /&gt;
&lt;br /&gt;
Perform English OCR on &amp;lt;code&amp;gt;input.jpg&amp;lt;/code&amp;gt; to create &amp;lt;code&amp;gt;output.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ tesseract input.jpg output -l eng&lt;br /&gt;
&lt;br /&gt;
Perform English OCR but with an image orientation check before.&lt;br /&gt;
 $ tesseract input.jpg output -l osd+eng&lt;br /&gt;
&lt;br /&gt;
Perform English OCR on all &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt; files in the working with 8 CPU cores using [[GNU Parallel]].&lt;br /&gt;
 $ find . -maxdepth 1 -type f -name &amp;quot;*.jpg&amp;quot; | parallel tesseract -j8 &#039;{}&#039; &#039;{.}&#039; -l eng&lt;br /&gt;
: &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to start its search in the working directory&lt;br /&gt;
: &amp;lt;code&amp;gt;-maxdepth 1&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to only search the immediate working directory and not to recursively traverse subdirectories.&lt;br /&gt;
: &amp;lt;code&amp;gt;-type f&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to search for files&lt;br /&gt;
: &amp;lt;code&amp;gt;-name &amp;quot;*.jpg&amp;quot;&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to case-sensitive pattern-match files ending in &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;-j8&amp;lt;/code&amp;gt; specifies 8 CPU threads to be used. Omitting this option causes all available CPU cores to be used.&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{}&#039;&amp;lt;/code&amp;gt; represents a single line received from &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{.}&#039;&amp;lt;/code&amp;gt; represents the same line but with the extension (i.e. &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;) removed.&lt;br /&gt;
&lt;br /&gt;
===[[top (software)|top]]===&lt;br /&gt;
View process, sorted by CPU usage&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
Shortcuts&amp;lt;ref name=&amp;quot;transip_2024_linux-top-shortcuts&amp;quot;&amp;gt;“[https://www.transip.eu/knowledgebase/entry/1979-using-the-top-command-linux/ Using the top command in Linux]”.  (n.d.).  &#039;&#039;[[transip.eu]]&#039;&#039;.  Accessed [[2024-01-06]].  [https://web.archive.org/web/20231127225012/https://www.transip.eu/knowledgebase/entry/1979-using-the-top-command-linux/ Archived] from the original on [[2023-11-27]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
* Arrow keys &amp;amp; page up/down: Navigate through the displayed list in the Task area.&lt;br /&gt;
* &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;: Finish the top with the &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;-key.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-p&amp;lt;/code&amp;gt;: Sort the processes by CPU usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-m&amp;lt;/code&amp;gt;: Sort the processes by memory (%MEM) usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-t&amp;lt;/code&amp;gt;: Sort the processes by running-time.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-n&amp;gt;&amp;lt;/code&amp;gt;: Sort the processes by process ID.&lt;br /&gt;
* &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;: Changes the display of the CPU usage in the summary section.&lt;br /&gt;
* &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;: Changes the display of memory usage in the summary section.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-r&amp;lt;/code&amp;gt;: Sort the processes in ascending order instead of descending (default).&lt;br /&gt;
* &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;: By pressing &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;, the &#039;Command&#039; column shows the entire path from which the processes were started.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-v&amp;lt;/code&amp;gt;: Shows the parent / child process hierarchy.&lt;br /&gt;
* &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;: Prompts for a process ID and closes the specified process. By default, SIGTERM is used for a graceful shutdown of the process. For a forced shutdown, you use SIGKILL.&lt;br /&gt;
&lt;br /&gt;
Run top once, printing results to stdout:&lt;br /&gt;
 $ top -n1 -b&lt;br /&gt;
&lt;br /&gt;
===[[tr]]===&lt;br /&gt;
Remove &amp;lt;code&amp;gt;# comments&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;input.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ cat input.txt | sed -e &#039;s/[[:blank:]]*#.*//&#039; | tr -s &#039;\n&#039;;&lt;br /&gt;
&lt;br /&gt;
====Remove unwanted character sets====&lt;br /&gt;
Keep only printable characters and spaces from a string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
/bin/bash&lt;br /&gt;
name=&amp;quot;message:おはよう　ございます.&amp;quot;;&lt;br /&gt;
name_new=&amp;quot;$( printf &amp;quot;%s&amp;quot; &amp;quot;$name&amp;quot; | tr -dc &#039;[:graph:][:space:]&#039; )&amp;quot;;&lt;br /&gt;
printf &amp;quot;%s\n&amp;quot; &amp;quot;$name&amp;quot;;&lt;br /&gt;
printf &amp;quot;%s\n&amp;quot; &amp;quot;$name_new&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This results in:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
message:おはよう　ございます.&lt;br /&gt;
message:.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[tree (command)]]===&lt;br /&gt;
Recursively list contents of current working directory.&lt;br /&gt;
 $ tree&lt;br /&gt;
&lt;br /&gt;
: List contents without colorized text.&lt;br /&gt;
 $ tree | ansi2txt&lt;br /&gt;
&lt;br /&gt;
===unar===&lt;br /&gt;
Install on a [[Debian]] system via [[apt]].&lt;br /&gt;
 $ sudo apt update &amp;amp;&amp;amp; sudo apt install unar&lt;br /&gt;
&lt;br /&gt;
Decompress a [[rar]] archive.&lt;br /&gt;
 $ unar archive.rar&lt;br /&gt;
&lt;br /&gt;
===unzip===&lt;br /&gt;
&#039;&#039;For &amp;lt;code&amp;gt;.rar&amp;lt;/code&amp;gt; files, see [[#unar]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unzip to directory &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ mkdir foo&lt;br /&gt;
 $ unzip -d foo archive.zip&lt;br /&gt;
&lt;br /&gt;
Unzip archives containing file names encoded in non-English encodings:&lt;br /&gt;
: [[Shift JIS]] [[Japanese]] encoding.&amp;lt;ref name=&amp;quot;askubuntu_20170711_unzip-shiftjis&amp;quot;&amp;gt;[https://askubuntu.com/users/4066/nicolas-raoul Nicolas Raoul].  ([[2017-07-11]]).  “[https://askubuntu.com/a/935023 How to unzip a Japanese ZIP file, and avoid mojibake/garbled characters]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2024-04-12]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ unzip -O shift-jis archive.zip&lt;br /&gt;
: [[Simplified Chinese characters]] encoding.&lt;br /&gt;
 $ unzip -O gb18030 archive.zip  # [[GB 18030]] is a superset of [[GBK]]. Try this first.&lt;br /&gt;
 $ unzip -O gbk archive.zip      # [[GBK (character encoding)|GBK]] an extension of [[GB 2312]].&lt;br /&gt;
 $ unzip -O gb2312 archive.zip   # [[GB 2312]] deprecated in 2017&lt;br /&gt;
: [[Big5]] [[Traditional Chinese characters]] encoding.&lt;br /&gt;
 $ unzip -O big5 archive.zip&lt;br /&gt;
&lt;br /&gt;
===[[veracrypt]]===&lt;br /&gt;
Mount a volume.&lt;br /&gt;
 $ veracrypt volume.hc&lt;br /&gt;
&lt;br /&gt;
Unmount all volumes.&lt;br /&gt;
 $ veracrypt -d&lt;br /&gt;
: If you get an error message resembling &amp;lt;code&amp;gt;Error: umount: /media/veracrypt1: target is busy&amp;lt;/code&amp;gt;, then identify the offending process with [[lsof]]&amp;lt;ref name=&amp;quot;so_20111024_unmountbusydev&amp;quot;&amp;gt;[[Frank Tudor|Tudor, Frank]].  ([[2011-10-24]]).  “[https://stackoverflow.com/a/7878763 How to unmount a busy device [closed]]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2023-07-25]].  [https://web.archive.org/web/20230620181852/https://stackoverflow.com/questions/7878707/how-to-unmount-a-busy-device/7878763#7878763 Archived] from the original on [[2023-06-20]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ lsof | grep &#039;/media/veracrypt1&#039;&lt;br /&gt;
&lt;br /&gt;
Unmount a specific volume.&lt;br /&gt;
 $ veracrypt -d volume.hc&lt;br /&gt;
&lt;br /&gt;
Create a volume.&lt;br /&gt;
 $ veracrypt -t -c&lt;br /&gt;
&lt;br /&gt;
===[[wc]]===&lt;br /&gt;
Word count. Part of GNU Coreutils 8.32.&lt;br /&gt;
&lt;br /&gt;
Count bytes in a file named &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ wc -c foo.txt&lt;br /&gt;
 20087&lt;br /&gt;
&lt;br /&gt;
Count the bytes in the file name &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt; (with an off-by-one error due to Bash adding a trailing newline character).&lt;br /&gt;
 $ wc -c &amp;lt;&amp;lt;&amp;lt; &amp;quot;foo.txt&amp;quot;&lt;br /&gt;
 8&lt;br /&gt;
&lt;br /&gt;
Count the bytes in the file name &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ filename=&amp;quot;foo.txt&amp;quot;; printf &amp;quot;%s&amp;quot; &amp;quot;$filename&amp;quot; | wc -c&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
===[[wondershaper]]===&lt;br /&gt;
Limit bandwidth of network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;{{bk}}: [[2024-01-12]]: Network interfaces and [[DHCP]]-assigned [[IP address]]es can be listed via &amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt;.&amp;lt;/ref&amp;gt; to 5000kbps download and 1000kbps upload.&lt;br /&gt;
 $ wondershaper eth0 5000 1000&lt;br /&gt;
&lt;br /&gt;
Clear [[wondershaper]] limits.&lt;br /&gt;
 $ wondershaper clear&lt;br /&gt;
&lt;br /&gt;
===[[yt-dlp]]===&lt;br /&gt;
&#039;&#039;For all options, see [[yt-dlp]] GitHub page [https://github.com/yt-dlp/yt-dlp here].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See example wrapper script [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/107b9c5341a52d03350d698b5ec42e26d810a93c/user/bkytpldl-generic here (&amp;lt;code&amp;gt;bkytpldl-generic&amp;lt;/code&amp;gt; v4.1.1)].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay between downloads&lt;br /&gt;
 $ yt-dlp --sleep-requests 2&lt;br /&gt;
&lt;br /&gt;
Remember downloaded videos to avoid redownload attempts.&lt;br /&gt;
 $ yt-dlp --download-archive some/path/history.txt &amp;quot;$URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Randomize order in which playlist items are downloaded.&lt;br /&gt;
 $ yt-dlp --playlist-random &amp;quot;$URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Handle &amp;lt;code&amp;gt;File name too long&amp;lt;/code&amp;gt; error by limiting long fields by byte count.&amp;lt;ref name=&amp;quot;ytdlp_2021_long-filename&amp;quot;&amp;gt;[[tylerszabo]]. ([[2021-10-01]]). “[https://github.com/yt-dlp/yt-dlp/issues/1136  [Feature request] Handle Long filenames in default template and temporary files #1136]”.  &#039;&#039;[[github.com]]&#039;&#039;, [[yt-dlp]].  Accessed [[2024-07-25]].  “&amp;lt;code&amp;gt;$ yt-dlp -o &#039;%(title).200B.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;&amp;lt;/code&amp;gt;”.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ yt-dlp -o &#039;%(title).140B.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;  # limits title to 140 bytes&lt;br /&gt;
 $ yt-dlp -o &#039;%(title)s.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;      # may fail if title too long&lt;br /&gt;
&lt;br /&gt;
Download lowest quality.&amp;lt;ref name=&amp;quot;su_20210806_ytdlp-lowest-quality&amp;quot;&amp;gt;[https://superuser.com/users/1052727/sherman Sherman].  ([[2021-08-06]]).  “[https://superuser.com/a/1667932/1142336 Download the lowest quality video with youtube-dl]”.  &#039;&#039;[[superuser.com]]&#039;&#039;.  Accessed [[2024-02-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ yt-dlp -S &#039;+size,+br&#039;&lt;br /&gt;
&lt;br /&gt;
Write automatic subtitles of a [[YouTube]] video to a &amp;lt;code&amp;gt;.vtt&amp;lt;/code&amp;gt; file:&lt;br /&gt;
 $ yt-dlp --write-subs --write-auto-subs https://www.youtube.com/watch?v=bbkUn0o3L1Y&lt;br /&gt;
&lt;br /&gt;
: Parse such a &amp;lt;code&amp;gt;.vtt&amp;lt;/code&amp;gt; file in order to extract the text (reading every 8th line with an offset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;clear; offset=1; cycle=8; n=0; {&lt;br /&gt;
  while read -r line; do&lt;br /&gt;
    if [[ ! $((n % cycle)) -eq &amp;quot;$offset&amp;quot; ]]; then&lt;br /&gt;
      ((n++)); continue; fi;&lt;br /&gt;
    printf &amp;quot;%s\n&amp;quot; &amp;quot;$line&amp;quot;;&lt;br /&gt;
    ((n++));&lt;br /&gt;
  done &amp;amp;lt; Unicode\ and\ Byte\ Order\ \[bbkUn0o3L1Y\].en.vtt;&lt;br /&gt;
  echo &amp;quot;STATUS:Done.&amp;quot; 1&amp;gt;&amp;amp;2;&lt;br /&gt;
} | grep -v &amp;quot;^$&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[xargs]]===&lt;br /&gt;
Break up many lines into groups to avoid [[xargs]] limits on argument counts and maximum command lengths.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
bite=100;  # group size  ADJUST ME&lt;br /&gt;
n=1;  # initialize loop counter&lt;br /&gt;
declare -a buffer;  # initialize line group&lt;br /&gt;
&lt;br /&gt;
# Populate and process full groups.&lt;br /&gt;
while read -r line; do&lt;br /&gt;
  buffer+=(&amp;quot;$line&amp;quot;);&lt;br /&gt;
  if [[ $(( n % bite )) -eq 0 ]]; then&lt;br /&gt;
    printf &amp;quot;%s\n&amp;quot; &amp;quot;${buffer[@]}&amp;quot; | xargs echo;  # ADJUST ME  replace &#039;echo&#039; with your command  &lt;br /&gt;
    unset buffer;&lt;br /&gt;
    sleep 1;  # throttle&lt;br /&gt;
  fi;&lt;br /&gt;
  ((n++));&lt;br /&gt;
done &amp;lt; &amp;lt;(seq 1 1000);  # ADJUST ME  replace with command that generates many lines  &lt;br /&gt;
&lt;br /&gt;
# Handle final partially filled group.&lt;br /&gt;
if [[ &amp;quot;${#buffer[@]}&amp;quot; -gt 0 ]]; then&lt;br /&gt;
  printf &amp;quot;%s\n&amp;quot; &amp;quot;${buffer[@]}&amp;quot; | xargs echo;  # ADJUST ME  replace &#039;echo&#039; with your command&lt;br /&gt;
fi;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert several lines of [[stdin]] into words. This may be useful if a command needs to perform an operation on all items in a long [[newline-delimited]] [[list]] as [[argument]] [[parameters]] instead of [[standard input]]. The following expressions are equivalent calls of [[ls]] to list the files &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;baz&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $ printf &amp;quot;foo\nbar\nbaz\n&amp;quot; | xargs -d &#039;\n&#039; ls -alh;&lt;br /&gt;
 $ ls -alh foo bar baz;&lt;br /&gt;
: Note: &amp;lt;code&amp;gt;-d &#039;\n&#039;&amp;lt;/code&amp;gt; requires that only [[newlines]] are used to separate (i.e. [[delimiter|delimit]]) arguments. The &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; option is necessary in newline-delimited lists because &amp;lt;code&amp;gt;xargs&amp;lt;/code&amp;gt; will split lines on [[whitespace characters]] such as the [[space character]]. For example, &amp;lt;code&amp;gt;printf &amp;quot;1 qux\n2 quux\n3 corge\n&amp;quot; | xargs -d &#039;\n&#039; ls -alh;&amp;lt;/code&amp;gt; will not apply &amp;lt;code&amp;gt;ls -alh&amp;lt;/code&amp;gt; to the three files &amp;lt;code&amp;gt;1 qux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2 quux&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;3 corge&amp;lt;/code&amp;gt;, but instead will erroneously use six other files &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;qux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;quux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;corge&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[[zip]]===&lt;br /&gt;
Compress a directory &amp;lt;code&amp;gt;my_dir&amp;lt;/code&amp;gt; into a zip archive &amp;lt;code&amp;gt;my_dir.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ dir_in=./my_dir; zip_out=&amp;quot;${dir_in}.zip&amp;quot;; zip -r &amp;quot;$zip_out&amp;quot; &amp;quot;$dir_in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{refsec}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Command line]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Baltakatei%27s_Useful_CLI_Commands&amp;diff=198199</id>
		<title>Baltakatei&#039;s Useful CLI Commands</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Baltakatei%27s_Useful_CLI_Commands&amp;diff=198199"/>
		<updated>2026-04-27T00:48:51Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly [[Debian]] GNU/Linux command line interface commands.&lt;br /&gt;
&lt;br /&gt;
For [[Windows NT|Windows]], see [[Powershell notes]].    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==Commands==&lt;br /&gt;
===Linux kernel stuff===&lt;br /&gt;
Flush cache.&amp;lt;ref&amp;gt;[https://unix.stackexchange.com/users/542349/pavan pavan].  ([[2022-09-22]]).  “[https://unix.stackexchange.com/a/718217 Setting /proc/sys/vm/drop_caches to clear cache]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-09-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo sh -c &amp;quot;sync; echo 3 &amp;gt; /proc/sys/vm/drop_caches&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[ansi2txt]]===&lt;br /&gt;
Part of the [[colorized-logs]] [[Debian]] package.&lt;br /&gt;
&lt;br /&gt;
Remove color codes from text.&amp;lt;ref&amp;gt;https://stackoverflow.com/a/67316339/10850071&amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ ansi2txt &amp;lt; ./input.txt &amp;gt; ./output.txt&lt;br /&gt;
  $ cat input.txt | ansi2txt &amp;gt; output.txt  # alternate method with pipes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[[grep]]&amp;lt;/code&amp;gt; example that searches file.txt, highlighting “2023” in color.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
  $ grep --color=always -- &amp;quot;2023&amp;quot; file.txt                           # view with color&lt;br /&gt;
  $ grep --color=always -- &amp;quot;2023&amp;quot; file.txt &amp;gt; results_color.txt       # store with color-codes&lt;br /&gt;
  $ ansi2txt &amp;lt; ./results_color.txt &amp;gt; ./results_nocolor.txt           # strip color codes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===apt===&lt;br /&gt;
Show details of any package, installed or not.&lt;br /&gt;
 $ apt show &amp;amp;#91;package-name&amp;amp;#93;&lt;br /&gt;
 $ apt show gpg  # example&lt;br /&gt;
&lt;br /&gt;
Check which packages depend on package &amp;lt;code&amp;gt;package-name&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;askubuntu_20181126_rdepends&amp;quot;&amp;gt;[[Corrado Topi]].  ([[2018-11-26]]).  “[https://askubuntu.com/a/1096318 How to list dependent packages (reverse dependencies)?]”.  &#039;&#039;askubuntu.com&#039;&#039;.  Accessed [[2023-07-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ apt rdepends package-name&lt;br /&gt;
&lt;br /&gt;
Install upgrades without prompts&amp;lt;ref&amp;gt;https://unix.stackexchange.com/a/314281/411854&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
===base64===&lt;br /&gt;
Calculate [[MD5]] [[checksum]] of a binary file.&amp;lt;ref&amp;gt;{{bk}}: [[2024-01-12]]: Note, &amp;lt;code&amp;gt;md5&amp;lt;/code&amp;gt; may be replaced with &amp;lt;code&amp;gt;sha256&amp;lt;/code&amp;gt; to get a [[SHA-256]] digest.&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ openssl md5 -binary foo.txt | base64  # with [[openssl]] and [[base64]]&lt;br /&gt;
 $ md5sum --binary foo.txt | cut -d&#039; &#039; -f1 | xxd -r -p | base64  # with [[md5sum]], [[xxd]] and [[base64]]&amp;lt;ref name=&amp;quot;se_20101101_base64-xxd&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/1946/alex alex]  ([[2010-11-01]]).  “[https://unix.stackexchange.com/a/3678/ How can I get a base64 encoded shaX on the cli?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-01-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===bash===&lt;br /&gt;
[https://www.gnu.org/software/bash/manual/bash.html Manual].&lt;br /&gt;
&lt;br /&gt;
Check if &amp;lt;code&amp;gt;$stringA&amp;lt;/code&amp;gt; comes alphabetically before &amp;lt;code&amp;gt;$stringB&amp;lt;/code&amp;gt; using current locale.&lt;br /&gt;
 $ if [[ &amp;quot;$stringA&amp;quot; &amp;lt; &amp;quot;$stringB&amp;quot; ]]; then echo true; else echo false; fi;&lt;br /&gt;
&lt;br /&gt;
Search &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; results with &amp;lt;code&amp;gt;grep&amp;lt;/code&amp;gt; using the exit code from a statement evaluated by the built-in &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ mkdir a;&lt;br /&gt;
 $ touch ./a/foo.txt&lt;br /&gt;
 $ touch ./a/bar.txt&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;foo&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found:&lt;br /&gt;
 ./a/foo.txt&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;baz&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found nothing.&lt;br /&gt;
 $ if results=&amp;quot;$(find . -type f | grep &#039;.txt$&#039;)&amp;quot;; then printf &amp;quot;Found:\n%s\n&amp;quot; &amp;quot;$results&amp;quot;; else printf &amp;quot;Found nothing.\n&amp;quot;; fi;&lt;br /&gt;
 Found:&lt;br /&gt;
 ./a/bar.txt&lt;br /&gt;
 ./a/foo.txt&lt;br /&gt;
&lt;br /&gt;
Use modulo integer math to print the integers between 0 and 100 that are divisible by 5.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 for ((i=0; i&amp;amp;lt;=100; i++)); do&lt;br /&gt;
   if [ $((i % 5)) -eq 0 ]; then&lt;br /&gt;
     echo $i&lt;br /&gt;
   fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
Count the number of occurrences of a single ASCII character (e.g. &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;) (see [https://stackoverflow.com/a/16679640 ref])&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 var=&amp;quot;text,text,text,text&amp;quot;&lt;br /&gt;
 res=&amp;quot;${var//[^,]}&amp;quot;&lt;br /&gt;
 echo &amp;quot;$res&amp;quot;&lt;br /&gt;
 echo &amp;quot;${#res}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Quotation rules====&lt;br /&gt;
How to insert a single apostrophe into an already single-apostrophe-quoted string.&lt;br /&gt;
 $ echo &amp;quot;You can&#039;t do it easily&amp;quot; | sed -E -e &#039;s/can&#039;\&#039;&#039;t/can/&#039;  # sed example&lt;br /&gt;
 You can do it easily.&lt;br /&gt;
&lt;br /&gt;
====Bash input/output====&lt;br /&gt;
Provide string to a command via stdin. The following are equivalent.&lt;br /&gt;
 $ echo &amp;quot;666&amp;quot; | sed &#039;s/6/7/g&#039;;              # Uses pipe format.&lt;br /&gt;
 777&lt;br /&gt;
 $ myVar=&amp;quot;666&amp;quot;; sed &#039;s/6/7/g &amp;lt;&amp;lt;&amp;lt; &amp;quot;$myVar&amp;quot;;  # Uses “here string” format.&amp;lt;ref&amp;gt;See https://www.gnu.org/software/bash/manual/bash.html#Here-Strings .&amp;lt;/ref&amp;gt;&lt;br /&gt;
 777&lt;br /&gt;
&lt;br /&gt;
Supply the first line of a text file as an argument.&lt;br /&gt;
 $ fpass=/dev/shm/password.txt;           # create file&lt;br /&gt;
 $ touch &amp;quot;$fpass&amp;quot; &amp;amp;&amp;amp; chmod 700 &amp;quot;$fpass&amp;quot;;  # set to user-only permission&lt;br /&gt;
 $ echo &amp;quot;hunter2&amp;quot; &amp;gt; &amp;quot;$fpass&amp;quot;;             # save password to file&lt;br /&gt;
 $ echo &amp;quot;$(head -n1 &amp;quot;$fpass&amp;quot;)&amp;quot;;     # read contents of file as argument&lt;br /&gt;
&lt;br /&gt;
====Bash job management====&lt;br /&gt;
&#039;&#039;See https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Job-Control &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Push job into background.&lt;br /&gt;
 ^Z   # (i.e. Ctrl-Z)&lt;br /&gt;
 [1]+ Stopped     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a&lt;br /&gt;
&lt;br /&gt;
Get a list of current background jobs&lt;br /&gt;
 $ jobs&lt;br /&gt;
 [1]+ Stopped     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a&lt;br /&gt;
&lt;br /&gt;
Restart a job (e.g. one with &amp;lt;code&amp;gt;jobspec&amp;lt;/code&amp;gt; 1) in the background and check that it is running.&lt;br /&gt;
 $ bg 1&lt;br /&gt;
 [1]+ git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a &amp;amp;&lt;br /&gt;
 $ jobs&lt;br /&gt;
 [1]+ Running     git tag --sign 2023-04-15 -m &amp;quot;SignStamp state&amp;quot; 6e31b1a &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Detach a job (e.g. one with &amp;lt;code&amp;gt;jobspec&amp;lt;/code&amp;gt; 1) from the current shell to permit safe exit without terminating the job.&lt;br /&gt;
 $ disown %1&lt;br /&gt;
&lt;br /&gt;
====Bash string manipulation====&lt;br /&gt;
&#039;&#039;See [https://tldp.org/LDP/abs/html/string-manipulation.html Manipulating Strings].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: The &amp;lt;code&amp;gt;${parameter}&amp;lt;/code&amp;gt; syntax invokes what is known as “Parameter Expansion”.&amp;lt;ref name=&amp;quot;gnu_2025_shell-param-exp&amp;quot;&amp;gt;&lt;br /&gt;
“[https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html Bash Features: 3.5.3 Shell Parameter Expansion]”. (n.d.). &#039;&#039;[[gnu.org]]&#039;&#039;.  Accessed [[2025-10-21]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace substring in variable.&amp;lt;ref name=&amp;quot;cooper_20140310_bash-strings&amp;quot;&amp;gt;[[Mendel Cooper]].  ([[2014-03-10]]).  “[https://tldp.org/LDP/abs/html/string-manipulation.html Advanced Bash-Scripting Guide: 10. Manipulating Strings]”.  &#039;&#039;[[tldp.org]]&#039;&#039;.  Accessed [[2024-02-12]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ myVar=&amp;quot;foobarbaz&amp;quot;;&lt;br /&gt;
$ echo &amp;quot;${myVar/bar/qux}&amp;quot;;&lt;br /&gt;
fooquxbaz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get first 7 characters of a string.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:0:7}&amp;quot;  # i.e. starting with character &#039;0&#039;, print &#039;7&#039; characters&lt;br /&gt;
 deadbee&lt;br /&gt;
&lt;br /&gt;
Print substring by specifying index and desired substring length.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:4:3}&amp;quot;  # i.e. starting with character &#039;4&#039;, print &#039;3&#039; characters&lt;br /&gt;
 bee&lt;br /&gt;
&lt;br /&gt;
Get last 4 characters of a string.&lt;br /&gt;
 $ myVar=&amp;quot;deadbeef&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar:(-4)}&amp;quot;;&lt;br /&gt;
 beef&lt;br /&gt;
&lt;br /&gt;
Lowercase characters in a variable&lt;br /&gt;
 $ myVar=&amp;quot;fooBARbaz&amp;quot;;&lt;br /&gt;
 $ echo &amp;quot;${myVar,,}&amp;quot;;&lt;br /&gt;
 foobarbaz&lt;br /&gt;
&lt;br /&gt;
Remove shortest matching pattern (e.g. &amp;lt;code&amp;gt;bar*&amp;lt;/code&amp;gt;) from end of variable.&lt;br /&gt;
 $ myVar=&amp;quot;foobarbar&amp;quot;; myVar2=&amp;quot;${myVar%bar*}&amp;quot;; declare -p myVar myVar2&lt;br /&gt;
 declare -- myVar=&amp;quot;foobarbar&amp;quot;&lt;br /&gt;
 declare -- myVar2=&amp;quot;foobar&amp;quot;    # only one &#039;bar&#039; removed&lt;br /&gt;
&lt;br /&gt;
Remove longest matching pattern (e.g. &amp;lt;code&amp;gt;bar*&amp;lt;/code&amp;gt;) from end of variable.&lt;br /&gt;
 $ myVar=&amp;quot;foobarbar&amp;quot;; myVar2=&amp;quot;${myVar%%bar*}&amp;quot;; declare -p myVar myVar2&lt;br /&gt;
 declare -- myVar=&amp;quot;foobarbar&amp;quot;&lt;br /&gt;
 declare -- myVar2=&amp;quot;foo&amp;quot;       # all the &#039;bar&#039;ʼs removed&lt;br /&gt;
&lt;br /&gt;
: Works with array parameter expansion too.&lt;br /&gt;
 $ myVar=&amp;quot;$(printf &amp;quot;foo\tbar\tbaz\n&amp;quot;)&amp;quot;; myArr[3]=&amp;quot;$myVar&amp;quot;; echo &amp;quot;${myArr[3]}&amp;quot;;&lt;br /&gt;
 foo	bar	baz&lt;br /&gt;
 $ echo &amp;quot;${myArr[3]%$&#039;\t&#039;*}&amp;quot;;  # cutoff starts at last tab &#039;\t&#039;&lt;br /&gt;
 foo	bar&lt;br /&gt;
 $ echo &amp;quot;${myArr[3]%%$&#039;\t&#039;*}&amp;quot;  # cutoff starts at first tab &#039;\t&#039;&lt;br /&gt;
 foo&lt;br /&gt;
&lt;br /&gt;
====Array manipulation====&lt;br /&gt;
Declare an array. (usually not needed, but good practice; not an “associative array”)&lt;br /&gt;
 $ declare -a my_array&lt;br /&gt;
&lt;br /&gt;
Store lines into an array. (Requires [[Bash]] version 4 or above)&lt;br /&gt;
 $ mapfile -t my_array &amp;lt; &amp;lt;(find &amp;quot;$HOME&amp;quot; -type f)  # store file list&lt;br /&gt;
 $ mapfile -t my_array &amp;lt; &amp;lt;(seq 1 10)              # store the integers 1 through 10&lt;br /&gt;
&lt;br /&gt;
Store lines into an array without &amp;lt;code&amp;gt;mapfile&amp;lt;/code&amp;gt; and process substitution (&amp;lt;code&amp;gt;&amp;lt; &amp;lt;(...)&amp;lt;/code&amp;gt;); compatible with Bash 3.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while IFS=&#039;&#039; read -r line; do&lt;br /&gt;
  my_array+=(&amp;quot;$line&amp;quot;);&lt;br /&gt;
done &amp;lt; &amp;lt;(find &amp;quot;$HOME&amp;quot; -type f);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check contents of an array in verbose style. (or any Bash variable)&lt;br /&gt;
 $ declare -p my_array&lt;br /&gt;
&lt;br /&gt;
Get count of array elements. (works even after you &amp;lt;code&amp;gt;unset&amp;lt;/code&amp;gt; an array element)&lt;br /&gt;
 $ echo &amp;quot;${#my_array[@]}&amp;quot;  # note the “#”&lt;br /&gt;
&lt;br /&gt;
Get array indices (each array element as a word; useful for &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loops)&lt;br /&gt;
 $ echo &amp;quot;${!my_array[@]}&amp;quot;  # note the “!”&lt;br /&gt;
&lt;br /&gt;
View a particular element of an array by index (Note: zero-indexed)&lt;br /&gt;
 $ printf &amp;quot;%s\n&amp;quot; &amp;quot;${my_array[1]}&amp;quot;  # display second element&lt;br /&gt;
 $ echo &amp;quot;${my_array[1]}&amp;quot;           # mostly the same, but beware special escaped character cases&lt;br /&gt;
&lt;br /&gt;
View all elements of an array, printing one line per array element.&lt;br /&gt;
 $ printf &amp;quot;%s\n&amp;quot; &amp;quot;${my_array[@]}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Act on each array element sequentially in a &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
for i in &amp;quot;${!my_array[@]}&amp;quot;; do&lt;br /&gt;
  printf &amp;quot;%s\n&amp;quot; &amp;quot;Checking element ${i} of ${#my_array[@]}.&amp;quot;;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove a particular array element by index.&lt;br /&gt;
 $ unset my_array[1]  # remove second element.&lt;br /&gt;
&lt;br /&gt;
Declare an associative array. (i.e. an array that uses strings as indices)&lt;br /&gt;
 $ declare -A myaa  #みゃあ&lt;br /&gt;
&lt;br /&gt;
Add an element to an associative array. (various styles)&lt;br /&gt;
 $ myaa[&amp;quot;september&amp;quot;]=&amp;quot;7&amp;quot;;&lt;br /&gt;
 $ myaa[&amp;quot;october&amp;quot;]=8;&lt;br /&gt;
 $ my_month=&amp;quot;december&amp;quot;; my_var=&amp;quot;10&amp;quot;; myaa[&amp;quot;${my_month}&amp;quot;]=&amp;quot;${my_var}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Check contents of an associative array (same as for any Bash array)&lt;br /&gt;
 $ declare -p myaa&lt;br /&gt;
 $ declare -p my_array myaa  # check two variables at the same time&lt;br /&gt;
&lt;br /&gt;
====Iteration statements====&lt;br /&gt;
Typical &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop that checks &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; first then performs &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; until &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while condition; do&lt;br /&gt;
  body;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emulate a &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop {{bkc|[[2025-10-11]]: Not compatible with &amp;lt;code&amp;gt;set -e&amp;lt;/code&amp;gt; error-handling which is supposed to end Bash script execution if any line fails. }} that initially performs &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; at least once before checking &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt;. Repeats &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; until &amp;lt;code&amp;gt;condition&amp;lt;/code&amp;gt; returns &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;so_20140626_bash-do-while&amp;quot;&amp;gt;[https://stackoverflow.com/users/1899640/that-other-guy that other guy].  ([[2014-06-26]]).  “[https://stackoverflow.com/a/24421013 Is there a do-while loop in bash?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2025-10-11]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while&lt;br /&gt;
  body;&lt;br /&gt;
  condition;&lt;br /&gt;
do true; done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emulate a &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop with &amp;lt;code&amp;gt;set -e&amp;lt;/code&amp;gt; error-handling support:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
while true; do&lt;br /&gt;
  body;&lt;br /&gt;
  condition || break;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[bc]]===&lt;br /&gt;
Evaluate math expressions&lt;br /&gt;
 $ echo &amp;quot;scale=12; 1 / 1.61803398875&amp;quot; | bc -l  # division with 12 decimal places&lt;br /&gt;
 .618033988749&lt;br /&gt;
 $ echo &amp;quot;scale=6; l(2.718281)&amp;quot; | bc -l  # logarithm with only 6 decimal places&lt;br /&gt;
 .999999&lt;br /&gt;
&lt;br /&gt;
===brew===&lt;br /&gt;
[[Homebrew (package manager)|Homebrew]] is a package manager for [[macOS]].&lt;br /&gt;
&lt;br /&gt;
Install via script and [[curl]] (simple, but sketchy method available at https://brew.sh ):&lt;br /&gt;
 $ /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Update packages&lt;br /&gt;
 $ brew update&lt;br /&gt;
&lt;br /&gt;
Get info on a package&lt;br /&gt;
 $ brew info coreutils&lt;br /&gt;
&lt;br /&gt;
Install a package&lt;br /&gt;
 $ brew install coreutils&lt;br /&gt;
&lt;br /&gt;
Test package commands&lt;br /&gt;
 $ gdate -Is  # Equivalent to Debian 12 `$ date -Is`.&lt;br /&gt;
 2024-10-08T20:03:18+00:00&lt;br /&gt;
&lt;br /&gt;
===calibredb===&lt;br /&gt;
Command-line interface for [[ebook]] manager [[Calibre]]&lt;br /&gt;
&lt;br /&gt;
List all books in &amp;lt;code&amp;gt;author; title&amp;lt;/code&amp;gt; format with [[jq]].&lt;br /&gt;
 $ calibredb list --for-machine | jq -r &#039;.[] | &amp;quot;\(.authors); \(.title)&amp;quot; &#039; | sort&lt;br /&gt;
&lt;br /&gt;
===chmod===&lt;br /&gt;
References:&lt;br /&gt;
* https://www.pluralsight.com/blog/it-ops/linux-file-permissions&lt;br /&gt;
* https://linuxconfig.org/chmod&lt;br /&gt;
&lt;br /&gt;
Remove read, write, and execute permissions for &#039;&#039;others&#039;&#039; to a file or directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chmod o-rwx foo&lt;br /&gt;
&lt;br /&gt;
Add read and execute permissions for &#039;&#039;group&#039;&#039; to a file or directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chmod g+rx foo&lt;br /&gt;
&lt;br /&gt;
Make all &#039;&#039;directories&#039;&#039; openable (i.e. executable) by &#039;&#039;user&#039;&#039; starting at a directory named &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # find ./bar -type d -exec chmod u+x \;&lt;br /&gt;
&lt;br /&gt;
Make all &#039;&#039;files&#039;&#039; non-executable by everyone within a directory named &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # find ./bar -type f -exec chmod ugo-x \;&lt;br /&gt;
 # find ./bar -type f -exec chmod -x \;&lt;br /&gt;
&lt;br /&gt;
Make a file named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; executable for &#039;&#039;user&#039;&#039;, &#039;&#039;group&#039;&#039;, and &#039;&#039;others&#039;&#039; (i.e. everyone).&lt;br /&gt;
 # chown +x foo&lt;br /&gt;
&lt;br /&gt;
===choom===&lt;br /&gt;
Get OOM score for process with PID &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ choom --pid 1&lt;br /&gt;
&lt;br /&gt;
List the bottom 50 processes in the OOM priority list (during low memory, the bottom is killed first).&lt;br /&gt;
 $ printf &amp;quot;pid,ooms,name\n&amp;quot;; while read -r line; do pid=&amp;quot;$(echo &amp;quot;$line&amp;quot; | cut -d&#039; &#039; -f2)&amp;quot;; name=&amp;quot;$(echo &amp;quot;$line&amp;quot; | cut -d&#039; &#039; -f11-)&amp;quot;; ooms=&amp;quot;$(choom -p &amp;quot;$pid&amp;quot; | grep -Eo &amp;quot;[0-9]+$&amp;quot; | head -n1)&amp;quot;; printf &amp;quot;%9d,%4d,%s\n&amp;quot; &amp;quot;$pid&amp;quot; &amp;quot;$ooms&amp;quot; &amp;quot;$name&amp;quot;; done &amp;lt; &amp;lt;(ps aux | tr -s &#039; &#039; | tail -n+2) | sort -k2 | tail -n50&lt;br /&gt;
&lt;br /&gt;
===chown===&lt;br /&gt;
Change ownership of a file or directory named &amp;lt;code&amp;gt;baz&amp;lt;/code&amp;gt; to &#039;&#039;user&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt; and &#039;&#039;group&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
 # chown debuser:debuser baz&lt;br /&gt;
&lt;br /&gt;
Change ownership of all files and directories contained within the directory named &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt; to &#039;&#039;user&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt; and &#039;&#039;group&#039;&#039; &amp;lt;code&amp;gt;debuser&amp;lt;/code&amp;gt;.&lt;br /&gt;
 root@h: chown -R debuser:debuser foo&lt;br /&gt;
&lt;br /&gt;
===[[chrony]]===&lt;br /&gt;
The following commands assume the package [[chrony]] is installed.&lt;br /&gt;
&lt;br /&gt;
Get a list of NTP refclocks being used to adjust local time:&lt;br /&gt;
 $ chronyc sources&lt;br /&gt;
&lt;br /&gt;
Get current machine&#039;s statistics (e.g. get Frequency or how slow or fast local clock is)&lt;br /&gt;
 $ chronyc tracking&lt;br /&gt;
&lt;br /&gt;
===convert===&lt;br /&gt;
&#039;&#039;See [[#ImageMagick]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===column===&lt;br /&gt;
&amp;lt;code&amp;gt;column&amp;lt;/code&amp;gt; may be used to print lines of standard input into columns (to reduce the total number of lines) or to create tables with custom delimiters (same number of lines). Part of the &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; package (version &amp;lt;code&amp;gt;2.39.3&amp;lt;/code&amp;gt;) in [[Debian]] systems.&lt;br /&gt;
&lt;br /&gt;
Reduce number of rows.&lt;br /&gt;
 $ seq 1 10                 # example multi-line input&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
 $ seq 1 10 | column;       # minimze rows&lt;br /&gt;
 1	2	3	4	5	6	7	8	9	10&lt;br /&gt;
&lt;br /&gt;
 $ seq 1 10 | column -c 30  # reduce rows to width of 30 characters&lt;br /&gt;
 1	5	9&lt;br /&gt;
 2	6	10&lt;br /&gt;
 3	7&lt;br /&gt;
 4	8&lt;br /&gt;
&lt;br /&gt;
Display text table with separator &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ printf &amp;quot;foo/bar/baz\nbi/boo/tax\n&amp;quot;&lt;br /&gt;
 foo/bar/baz&lt;br /&gt;
 bi/boo/tax&lt;br /&gt;
 $ printf &amp;quot;foo/bar/baz\nbi/boo/tax\n&amp;quot; | column -t -s&#039;/&#039;&lt;br /&gt;
 foo  bar  baz&lt;br /&gt;
 bi   boo  tax&lt;br /&gt;
&lt;br /&gt;
Display &amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt; contents (which uses &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; as separator)&lt;br /&gt;
 $ sudo cat /etc/passwd | column -t -s &#039;:&#039;&lt;br /&gt;
&lt;br /&gt;
===[[cron|crontab]]===&lt;br /&gt;
Edit crontab.&lt;br /&gt;
 $ crontab -e&lt;br /&gt;
&lt;br /&gt;
Print crontab to stdout:&lt;br /&gt;
 $ crontab -l&lt;br /&gt;
&lt;br /&gt;
Erase crontab (DON&#039;T DO UNLESS YOU HAVE A BACKUP OF THE CRONTAB):&lt;br /&gt;
 $ crontab -r&lt;br /&gt;
&lt;br /&gt;
Print to stdout the &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; of user &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; via user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; ([https://askubuntu.com/questions/189189/how-to-run-crontab-as-userwww-data ref]):&lt;br /&gt;
 $ sudo su - www-data -s /bin/bash -c &amp;quot;crontab -l&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===cryptsetup===&lt;br /&gt;
====Get details on a volume encrypted with LUKS====&lt;br /&gt;
&lt;br /&gt;
 $ cryptsetup status /dev/mapper/$some_volume&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;code&amp;gt;$some_volume&amp;lt;/code&amp;gt; is the name of an encrypted volume. [https://unix.stackexchange.com/questions/260533/how-to-determine-what-encryption-is-being-used-a-luks-partition Reference].&lt;br /&gt;
&lt;br /&gt;
===cut===&lt;br /&gt;
Select second field in comma-delimited CSV file &amp;lt;code&amp;gt;file.csv&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ cut -d&#039;,&#039; -f2&lt;br /&gt;
&lt;br /&gt;
Select second field in tab-delimited TSV file &amp;lt;code&amp;gt;file.tsv&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ cut -d$&#039;\t&#039; -f2 file.tsv&lt;br /&gt;
&lt;br /&gt;
Select fields 3 through 7 in comma-delimited CSV file.&lt;br /&gt;
 $ cut -d&#039;,&#039; -f3-7 file.csv&lt;br /&gt;
&lt;br /&gt;
===[[date]]===&lt;br /&gt;
&#039;&#039;Note: Assumes GNU date.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Print today&#039;s calendar date in [[ISO 8601]] format&lt;br /&gt;
 $ date -I&lt;br /&gt;
 $ date -Id&lt;br /&gt;
 $ date +%Y-%m-%d&lt;br /&gt;
&lt;br /&gt;
Print current date and time in [[ISO 8601]] format to second resolution.&lt;br /&gt;
 $ date -Is                    # e.g. 2024-02-01T05:44:58+00:00&lt;br /&gt;
 $ date +%Y-%m-%dT%H:%M:%S%:z  # e.g. 2024-02-01T05:44:58+00:00&lt;br /&gt;
&lt;br /&gt;
Print current date and time in [[ISO 8601]] format to second resolution with minimal separators. (e.g. for file name use)&lt;br /&gt;
 $ date +%Y%m%dT%H%M%S%z  # e.g. 20240201T054458+00&lt;br /&gt;
&lt;br /&gt;
Print current UNIX epoch. (i.e. [[POSIX]] seconds since [[1970-01-01]].).&lt;br /&gt;
 $ date +%s&lt;br /&gt;
&lt;br /&gt;
Print actual seconds since [[1970-01-01]]. (requires [https://packages.debian.org/trixie/tzdata-legacy tzdata-legacy])&amp;lt;ref name=&amp;quot;ken_20160303_right-tz&amp;quot;&amp;gt;[https://kenta.blogspot.com/ Ken].  ([[2016-03-03]]).  “[https://kenta.blogspot.com/2016/03/sqfzcxay-understanding-right-time-zone.html [sqfzcxay] Understanding the &amp;quot;right&amp;quot; time zone database]”.  &#039;&#039;[[blogspot.com]]&#039;&#039;.  Accessed [[2026-04-26]].  &amp;lt;/ref&amp;gt;{{bkc|[[2026-04-27]]: Getting the &amp;lt;code&amp;gt;/usr/share/zoneinfo/right/UTC&amp;lt;/code&amp;gt; may require running &amp;lt;code&amp;gt;$ sudo apt install tzdata-legacy&amp;lt;/code&amp;gt; on a [[Debian]]-based system. }}&lt;br /&gt;
 $ TZ=right/UTC date --date=&amp;quot;$(date --iso-8601=s)&amp;quot; +%s;&lt;br /&gt;
&lt;br /&gt;
Print all calendar dates for the next 365 days. (e.g. &amp;lt;code&amp;gt;2024-02-01\n2024-02-02\n2024-02-03\n…&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
today=&amp;quot;$(date +%s)&amp;quot;; n=0; for dia in {0..365}; do&lt;br /&gt;
  day=&amp;quot;$((today + dia * (24*60*60) ))&amp;quot;;&lt;br /&gt;
  date --date=&amp;quot;@$day&amp;quot; &amp;quot;+%Y-%m-%d&amp;quot;;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get date from hexadecimal Unix epoch.&lt;br /&gt;
 $ date -Is --date=&amp;quot;@$(printf &amp;quot;%u&amp;quot; &amp;quot;0x68ed790a&amp;quot;)&amp;quot;&lt;br /&gt;
 2025-10-13T22:11:22+00:00&lt;br /&gt;
 $ date -Is --date=&amp;quot;@$(printf &amp;quot;%u&amp;quot; &amp;quot;0xFFFFFFFF&amp;quot;)&amp;quot;    #  See [[Time formatting and storage bugs#Year_2106|Time formatting and storage bugs]]&lt;br /&gt;
 2106-02-07T06:28:15+00:00&lt;br /&gt;
&lt;br /&gt;
===dd===&lt;br /&gt;
Read every block of a block device &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt; in 4 KiB increments.&lt;br /&gt;
 $ sudo dd if=/dev/sdb of=/dev/random bs=4k&lt;br /&gt;
&lt;br /&gt;
Create a 10 MiB file containing [[pseudorandom noise]] using 2 MiB of [[Random access memory|RAM]] at a time.&amp;lt;ref name=&amp;quot;su_20120906_ddrandfile&amp;quot;&amp;gt;[[u1686_grawity]]. ([[2012-09-06]]). “[https://superuser.com/a/470957/1142336 How do I create a 1GB random file in Linux?]”. &#039;&#039;superuser.com&#039;&#039;. Accessed [[2023-07-01]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ dd if=/dev/urandom of=sample.txt bs=2M count=5&lt;br /&gt;
&lt;br /&gt;
===du===&lt;br /&gt;
List disk usage of ALL files and directories within working directory in bytes.&lt;br /&gt;
 $ du -b .&lt;br /&gt;
 $ du -b -- .&lt;br /&gt;
&lt;br /&gt;
List disk usage (i.e. size) of files and directories within working directory. (i.e. depth 1)&lt;br /&gt;
 $ du -bd1 -- .&lt;br /&gt;
&lt;br /&gt;
List disk usage of &amp;lt;code&amp;gt;*.txt&amp;lt;/code&amp;gt; files (and directories) fitting pattern &amp;lt;code&amp;gt;*.txt&amp;lt;/code&amp;gt; within working directory.{{bkc|[[2025-10-21]]: Note: Using the &amp;lt;code&amp;gt;find -printf &#039;%s\t%p\n&#039;&amp;lt;/code&amp;gt; pattern is much faster than calling &amp;lt;code&amp;gt;du&amp;lt;/code&amp;gt; repeatedly in a &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop that is fed paths from &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;. It&#039;s even faster than &amp;lt;code&amp;gt;find -exec du -b &#039;{}&#039; \+&amp;lt;/code&amp;gt; trick. }}&lt;br /&gt;
 $ du -bd1 -- *.txt&lt;br /&gt;
 $ find ./ -maxdepth 1 -name &amp;quot;*.txt&amp;quot; -printf &#039;%s\t%p\n&#039;  # faster than &#039;du&#039;&lt;br /&gt;
&lt;br /&gt;
===dig===&lt;br /&gt;
Get public IP address&amp;lt;ref name=&amp;quot;cyberciti_20230311_getpublicip&amp;quot;&amp;gt;[[Vivek Gite|Gite, Vivek]]. ([[2023-03-11]]). “[https://www.cyberciti.biz/faq/how-to-find-my-public-ip-address-from-command-line-on-a-linux/ How To Find My Public IP Address From Linux CLI]”. &#039;&#039;cyberciti.biz&#039;&#039;. Accessed [[2023-05-08]].&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ dig +short myip.opendns.com @resolver1.opendns.com&lt;br /&gt;
 $ dig +short txt ch whoami.cloudflare @1.0.0.1&lt;br /&gt;
 $ dig TXT +short o-o.myaddr.l.google.com @ns1.google.com&lt;br /&gt;
&lt;br /&gt;
===[[dpkg]]===&lt;br /&gt;
List available [[kernel]]s.&lt;br /&gt;
 $ dpkg --list | grep -- linux-image&lt;br /&gt;
&lt;br /&gt;
Check which package owns a file.&lt;br /&gt;
 $ dpkg -S /etc/systemd/logind.conf  # by file path&lt;br /&gt;
 $ dpkg -S &amp;quot;$(which zdump)&amp;quot;          # by command name, e.g. `zdump`&lt;br /&gt;
&lt;br /&gt;
===dpkg-reconfigure===&lt;br /&gt;
Add a [[locale]] in [[Debian]]-based systems that use [[dpkg]].&lt;br /&gt;
 $ sudo dpkg-reconfigure locales&lt;br /&gt;
: Navigate menus to select the local. Recommended: locales ending in &amp;lt;code&amp;gt;.UTF-8&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;C.UTF-8&amp;lt;/code&amp;gt; (compatibility), &amp;lt;code&amp;gt;en_US.UTF-8&amp;lt;/code&amp;gt; ([[English language|English]] of United States), &amp;lt;code&amp;gt;zh_CN.UTF-8&amp;lt;/code&amp;gt; ([[Chinese language|Chinese]] of mainland China), &amp;lt;code&amp;gt;id_ID.UTF-8&amp;lt;/code&amp;gt; ([[Indonesian language|Indonesian]] of [[Indonesia]]), &amp;lt;code&amp;gt;ja_JP.UTF-8&amp;lt;/code&amp;gt; ([[Japanese language|Japanese]] of [[Japan]]), &amp;lt;code&amp;gt;ko_KR.UTF-8&amp;lt;/code&amp;gt; ([[Korean language|Korean]] of [[South Korea]]).&lt;br /&gt;
&lt;br /&gt;
===[[dstat]]===&lt;br /&gt;
&#039;&#039;Consider using [[dool]] ([https://github.com/scottchiefbaker/dool GitHub])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show system stats, averaged every 60 seconds per line&lt;br /&gt;
 dstat --time --load --proc --cpu --mem --disk --io --net --sys --vm 60&lt;br /&gt;
&lt;br /&gt;
===[[dool]]===&lt;br /&gt;
&#039;&#039;A [[python3]] fork of [[dstat]].&#039;&#039;&amp;lt;ref name=&amp;quot;tecmint_20240422_dool&amp;quot;&amp;gt;[[Aaron Kili]].  ([[2024-04-22]]).  “[https://www.tecmint.com/dool-monitor-linux-server-performance-process-memory-network/ Dool – All-in-One Linux Server Performance Monitoring Tool]”.  [[tecmint.com]].  Accessed [[2025-10-03]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show system stats, averaged every 60 seconds per line&lt;br /&gt;
 dool --time --load --proc --cpu --mem --disk --io --net --bytes --sys --vm 60&lt;br /&gt;
&lt;br /&gt;
===[[emacs]]===&lt;br /&gt;
&#039;&#039;See [[Emacs notes]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===[[exiftool]]===&lt;br /&gt;
&#039;&#039;Note: Consider using [[BK-2020-03]]&amp;lt;code&amp;gt;bkphotorights&amp;lt;/code&amp;gt; script to add XMP data with Creative Commons attribution data.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List all EXIF data, including XMP tags.&lt;br /&gt;
 $ exiftool file.jpg&lt;br /&gt;
&lt;br /&gt;
Remove all EXIF data from photograph files&lt;br /&gt;
 $ exiftool -all= file.jpg&lt;br /&gt;
&lt;br /&gt;
Remove only GPS EXIF data from JPG (see https://exiftool.org/forum/index.php?topic=6037.0 )&lt;br /&gt;
 $ exiftool -gps:all= file.jpg&lt;br /&gt;
&lt;br /&gt;
remove only GPS EXIF data from JPG If GPS is in XMP:&lt;br /&gt;
 $ exiftool &amp;quot;-gps*=&amp;quot; file.jpg&lt;br /&gt;
&lt;br /&gt;
Rotate image via EXIF tag&amp;lt;ref name=&amp;quot;exiftool_20161218_rotate&amp;quot;&amp;gt;Alan Clifford.  ([[2016-12-18]]).  “[https://exiftool.org/forum/index.php?PHPSESSID=57842c30da5ac949b63ec7325448da35&amp;amp;msg=40314 Writing to the EXIF:Orientation Tag]”.  &#039;&#039;[[exiftool.org]]&#039;&#039;.  Accessed [[2024-07-13]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ exiftool -Orientation#=1 file.jpg   # Horizontal (normal)&lt;br /&gt;
 $ exiftool -Orientation#=2 file.jpg   # Mirror horizontal&lt;br /&gt;
 $ exiftool -Orientation#=3 file.jpg   # Rotate 180&lt;br /&gt;
 $ exiftool -Orientation#=4 file.jpg   # Mirror vertical&lt;br /&gt;
 $ exiftool -Orientation#=5 file.jpg   # Mirror horizontal and rotate 270 CW&lt;br /&gt;
 $ exiftool -Orientation#=6 file.jpg   # Rotate 90 CW&lt;br /&gt;
 $ exiftool -Orientation#=7 file.jpg   # Mirror horizontal and rotate 90 CW&lt;br /&gt;
 $ exiftool -Orientation#=8 file.jpg   # Rotate 270 CW&lt;br /&gt;
&lt;br /&gt;
===[[f3]]===&lt;br /&gt;
&#039;&#039;&#039;Fight Fake Flash&#039;&#039;&#039; (F3) is a utility for detecting fake flash storage drives.&amp;lt;ref name=&amp;quot;debian_2023_fightfakeflash&amp;quot;&amp;gt;“[https://tracker.debian.org/pkg/f3 f3 - test real flash memory capacity]”.  ([[2023]]).  &#039;&#039;[[tracker.debian.org]]&#039;&#039;.  Accessed [[2024-11-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install&lt;br /&gt;
 $ sudo apt install f3&lt;br /&gt;
&lt;br /&gt;
Run on drive mounted at &amp;lt;code&amp;gt;/media/baltakatei/myusb&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ f3write /media/baltakatei/myusb&lt;br /&gt;
&lt;br /&gt;
Verify&lt;br /&gt;
 $ f3read /media/baltakatei/myusb&lt;br /&gt;
&lt;br /&gt;
===[[ffmpeg]]===&lt;br /&gt;
Encode [[h264]] video for compatibility with [[Firefox]].&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -pix_fmt yuv420p output.mp4&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 18 -pix_fmt yuv420p output.mp4  # higher quality&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset veryslow -crf 26 -pix_fmt yuv420p output.mp4  # smaller size&lt;br /&gt;
&lt;br /&gt;
Extract clip with time codes.&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -avoid_negative_ts 1 output.mp4&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -c:v libx264 -preset slow -crf 18 -c:a aac -b:a 128k -avoid_negative_ts 1 output.mp4      &lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 60 -t 120 -avoid_negative_ts 1 output.mp4&lt;br /&gt;
&lt;br /&gt;
Extract frame of video to save as [[PNG]] file&lt;br /&gt;
 $ ffmpeg -i input.webm -ss 00:00:00 -frames:v 1 output.png  # first frame&lt;br /&gt;
 $ ffmpeg -i input.webm -ss 00:00:10 -frames:v 1 output.png  # a frame from 10 seconds in&lt;br /&gt;
&lt;br /&gt;
Extract album artwork from one of the original audiobook mp3 files. (&#039;&#039;see [[Audiobook transcoding notes]].&#039;&#039;; example: [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/738ad68b7df736f438f74dfeffd56e400fb2c1bf/user/mp3s_to_mkv.sh mp3s_to_mkv.sh])&lt;br /&gt;
 $ ffmpeg -i How\ To\ -\ Track\ 001.mp3 -an -vcodec copy album_artwork.png&lt;br /&gt;
&lt;br /&gt;
Convert &amp;lt;code&amp;gt;*.JPG&amp;lt;/code&amp;gt; files into time lapse at 60 frames per second (&amp;lt;code&amp;gt;-r 60&amp;lt;/code&amp;gt;) with &amp;lt;code&amp;gt;yuvj420p&amp;lt;/code&amp;gt; colors to reduce banding.&amp;lt;ref name=&amp;quot;yc_20190529_carmack-ffmpeg-color&amp;quot;&amp;gt;[[John Carmack]].  ([[2019-05-29]]).  “[https://news.ycombinator.com/item?id=20036710 Adventures with ffmpeg and color ranges]”.  &#039;&#039;[[ycombinator.com]]&#039;&#039;.  Accessed [[2026-01-22]].  “&amp;lt;code&amp;gt;ffmpeg -i source.mp4 -c:v libx265 -pix_fmt yuvj420p dest.mp4&amp;lt;/code&amp;gt;”.  &amp;lt;/ref&amp;gt;{{bkc|[[2026-01-22]]: Use &amp;lt;code&amp;gt;$ ffprobe DSC00123.JPG&amp;lt;/code&amp;gt; to find the color space of the input [[JPEG]] file. For example: &amp;lt;code&amp;gt;Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown)&amp;lt;/code&amp;gt; means &amp;lt;code&amp;gt;-pix_fmt yuvj422p&amp;lt;/code&amp;gt; should be the option provided to &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
 $ ffmpeg -nostdin -pattern_type glob -i &#039;*.JPG&#039; -c:v libx264 -r 60 -preset veryslow -crf 18 -pix_fmt yuvj420p output4.mp4&lt;br /&gt;
 $ ffmpeg -nostdin -pattern_type glob -i &#039;*.JPG&#039; -c:v libx264 -r 60 -preset veryslow -crf 26 -pix_fmt yuvj420p output4.mp4&lt;br /&gt;
&lt;br /&gt;
Export [[SNES]] [[SPC]] audio.&amp;lt;ref name=&amp;quot;&amp;quot;&amp;gt;[[Kaz Wolfe]].  ([[2017-03-28]]).  “[https://askubuntu.com/a/897694/ SPC to WAV command-line]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2026-04-13]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffmpeg -i track1.spc track1.flac&lt;br /&gt;
&lt;br /&gt;
====Quality of life====&lt;br /&gt;
Hide verbose configuration banner. (e.g. &amp;lt;code&amp;gt;built with gcc 11… configuration: --prefix=/usr…&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ ffmpeg -hide_banner&lt;br /&gt;
&lt;br /&gt;
====Encode video====&lt;br /&gt;
Encode video using [[VP9]] codec with 2 passes and tile-based multithreading.&amp;lt;ref name=&amp;quot;ffmpeg_2024_vp9-encoding&amp;quot;&amp;gt;“[https://trac.ffmpeg.org/wiki/Encode/VP9 FFmpeg and VP9 Encoding Guide]”.  ([[2024-01]]).  &#039;&#039;[[ffmpeg.org]]&#039;&#039;.  Accessed [[2024-05-23]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
fin=input.mkv;&lt;br /&gt;
ffmpeg -nostdin -i &amp;quot;$fin&amp;quot; -c:v libvpx-vp9 -row-mt 1 -b:v 0 -crf 18 -pass 1 -f null /dev/null &amp;amp;&amp;amp; \&lt;br /&gt;
ffmpeg -nostdin -i &amp;quot;$fin&amp;quot; -c:v libvpx-vp9 -row-mt 1 -b:v 0 -crf 18 -pass 2 &amp;quot;${fin%.mkv}.webm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specify a constant rate factor (CRF)&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 18 -c:a copy output.mp4&lt;br /&gt;
&lt;br /&gt;
Clip a video at CRF 18 and encode audio to [[OPUS]].&lt;br /&gt;
 $ ffmpeg -i input.mp4 -ss 00:01:00.000 -to 00:03:00.000 -c:v libx264 -preset slow -crf 18 -c:a libopus -b:a 128k -avoid_negative_ts 1 output.mp4&lt;br /&gt;
&lt;br /&gt;
Process multiple videos in a [[Bash]] while loop. (Avoid [[stdin]] conflict with &amp;lt;code&amp;gt;-nostdin&amp;lt;/code&amp;gt; option)&amp;lt;ref name=&amp;quot;bashfaq_20221030_089stdin&amp;quot;&amp;gt;“[https://mywiki.wooledge.org/BashFAQ/089 BashFAQ/089 I&#039;m reading a file line by line and running ssh or ffmpeg, only the first line gets processed!]”.  ([[2022-10-30]]).  &#039;&#039;mywiki.wooledge.org&#039;&#039;.  Accessed [[2023-07-29]].  [https://web.archive.org/web/20230723080923/https://mywiki.wooledge.org/BashFAQ/089 Archived] from the original on [[2023-07-23]].  &amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;se_20220922_bashvarffmpeg&amp;quot;&amp;gt;[[roaima]].  ([[2022-09-22]]).  “[https://unix.stackexchange.com/a/718279 Bash variable truncated when passed into ffmpeg]”.  &#039;&#039;[[unix.stackexchange.com]]&#039;&#039;.  Accessed [[2023-07-29]].  [https://web.archive.org/web/20230729161626/https://unix.stackexchange.com/questions/718277/bash-variable-truncated-when-passed-into-ffmpeg/718279#718279 Archived] from the original on [[2023-07-29]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 while IFS= read -r file; do&lt;br /&gt;
   ffmpeg -nostdin -i &amp;quot;$file&amp;quot; -c:v libx264 -c:a aac &amp;quot;${file%.avi}&amp;quot;.mkv&lt;br /&gt;
 done &amp;lt; &amp;lt;(find . -name &#039;*.avi&#039;)&lt;br /&gt;
&lt;br /&gt;
=====Apply video filters=====&lt;br /&gt;
Create a 1-minute 60 fps time lapse video from 3 hours of 30 fps input.&lt;br /&gt;
: From videos, create a file list then run &amp;lt;code&amp;gt;ffmpeg&amp;lt;/code&amp;gt; on the list.&lt;br /&gt;
 $ for f in ./*.MP4; do echo &amp;quot;file &#039;$PWD/$f&#039;&amp;quot; &amp;gt;&amp;gt; filelist.txt; done&lt;br /&gt;
&lt;br /&gt;
: Create the 60 fps (&amp;lt;code&amp;gt;-r 60&amp;lt;/code&amp;gt;) timelapse of 3 hours reduced into 1 minute. The &amp;lt;code&amp;gt;setpts&amp;lt;/code&amp;gt; factor is equal to &amp;lt;code&amp;gt;(duration out)/(duration in)*(fps out)/(fps in)&amp;lt;/code&amp;gt;. So, &amp;lt;code&amp;gt;(1*60)/(3*60*60)*(60/30) ≈ 0.01111&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ ffmpeg -nostdin -f concat -safe 0 -i filelist.txt -vf &amp;quot;setpts=0.01111*PTS&amp;quot; -an -r 60 output_timelapse.mp4&lt;br /&gt;
&lt;br /&gt;
Apply a temporal median filter across a radius of 10 frames.&amp;lt;ref name=&amp;quot;ffmpeg_2024_filter-tmedian&amp;quot;&amp;gt;“[https://ffmpeg.org/ffmpeg-filters.html#tmedian 11.259 tmedian]”.  (n.d.).  &#039;&#039;[[ffmpeg.org]]&#039;&#039;.  Accessed [[2024-09-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffmpeg -f -i input.mp4 -vf &amp;quot;tmedian=radius=10:planes=15:percentile=0.5&amp;quot; -an output.mp4&lt;br /&gt;
&lt;br /&gt;
Apply both a time lapse and a temporal median filter for several &amp;lt;code&amp;gt;.[[MP4]]&amp;lt;/code&amp;gt; files.&lt;br /&gt;
 $ for f in ./*.MP4; do echo &amp;quot;file &#039;$PWD/$f&#039;&amp;quot; &amp;gt;&amp;gt; filelist.txt; done;&lt;br /&gt;
 $ ffmpeg -f concat -safe 0 -i filelist.txt -vf &amp;quot;setpts=0.01111*PTS, tmedian=radius=10:planes=15:percentile=0.5&amp;quot; -an -r 60 -crf 30 output_timelapse_crf30_median.mp4&lt;br /&gt;
&lt;br /&gt;
====Split a video file into roughly equal segments====&lt;br /&gt;
Reference: https://unix.stackexchange.com/a/212518/411854&lt;br /&gt;
&lt;br /&gt;
 $ ffmpeg -i input.mp4 -c copy -map 0 -segment_time 00:20:00 -f segment -reset_timestamps 1 output%03d.mp4&lt;br /&gt;
&lt;br /&gt;
====Combine video files into a single file====&lt;br /&gt;
Reference: https://trac.ffmpeg.org/wiki/Concatenate&lt;br /&gt;
&lt;br /&gt;
 # this is a comment of the file named mylist.txt&lt;br /&gt;
 file &#039;/path/to/file1.wav&#039;&lt;br /&gt;
 file &#039;/path/to/file2.wav&#039;&lt;br /&gt;
 file &#039;/path/to/file3.wav&#039;&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.wav&lt;br /&gt;
&lt;br /&gt;
====Add subtitles to a video file====&lt;br /&gt;
Add multiple [[ASS]] subtitle files to a single [[MP4]] video file.&amp;lt;ref&amp;gt;{{bk}}: [[2024-03-01]]: See [[ffmpeg]]ʼs [https://trac.ffmpeg.org/wiki/Map &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt;] option. Order is important.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
ffmpeg -i input.mp4 \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.en-US.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.es-US.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.id.ass \&lt;br /&gt;
       -sub_charenc &#039;UTF-8&#039; -f ass -i input.ja.ass \&lt;br /&gt;
       -map 0:v -map 0:a \&lt;br /&gt;
       -map 1 -map 2 -map 3 -map 4 \&lt;br /&gt;
       -metadata:s:s:0 language=eng \&lt;br /&gt;
       -metadata:s:s:1 language=spa \&lt;br /&gt;
       -metadata:s:s:2 language=ind \&lt;br /&gt;
       -metadata:s:s:3 language=jpn \&lt;br /&gt;
       -c copy \&lt;br /&gt;
       -c:s ass output.mkv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[ffprobe]]===&lt;br /&gt;
Get audio duration in seconds as a decimal number.&amp;lt;ref name=&amp;quot;so_20110604_duration-audio-file&amp;quot;&amp;gt;[https://stackoverflow.com/users/200265/louise louise].  ([[2011-06-04]]).  “[https://stackoverflow.com/a/22243834/10850071 How to extract duration time from ffmpeg output?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-02-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot; -show_entries format=duration -v quiet -of csv=&amp;quot;p=0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
: Get audio duration in seconds of all &amp;lt;code&amp;gt;.flac&amp;lt;/code&amp;gt; files in the working directory with [[bc]].&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
dur=&amp;quot;0.0&amp;quot;; while read -r line; do&lt;br /&gt;
  line_dur=&amp;quot;$(ffprobe -i &amp;quot;$line&amp;quot; -show_entries format=duration -v quiet -of csv=&amp;quot;p=0&amp;quot;)&amp;quot;;&lt;br /&gt;
  dur=&amp;quot;$(echo &amp;quot;$dur + $line_dur&amp;quot; | bc -l)&amp;quot;;&lt;br /&gt;
done &amp;lt; &amp;lt;(find . -type f -name &amp;quot;*.flac&amp;quot;);&lt;br /&gt;
echo &amp;quot;$dur&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get bitrate in integer bytes.&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot;; -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 &lt;br /&gt;
&lt;br /&gt;
Get chapter times.&amp;lt;ref name=&amp;quot;se_20190425_ffmpeg-chapters&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/349887/nemo Nemo].  ([[2019-04-25]]).  “[https://unix.stackexchange.com/a/515371 Using ffmpeg to split an Audible audio-book into chapters?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2024-01-20]].  &amp;lt;/ref&amp;gt;&amp;lt;ref group=fn&amp;gt;{{bk}}: See &amp;lt;code&amp;gt;[[BK-2020-03]]:user/mw_get_audiobook_chapters.sh&amp;lt;/code&amp;gt;.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ffprobe -i &amp;quot;$file&amp;quot; -print_format json -show_chapters -sexagesimal&lt;br /&gt;
&lt;br /&gt;
===[[find]]===&lt;br /&gt;
Outputs newline-delimited (default) list of paths of files or directories matching specified filters.&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; directory recursively.&lt;br /&gt;
 $ find /path/to/dir&lt;br /&gt;
&lt;br /&gt;
List all files in working directory recursively&lt;br /&gt;
 $ find . -type f&lt;br /&gt;
&lt;br /&gt;
List all directories in working directory recursively&lt;br /&gt;
 $ find . -type d&lt;br /&gt;
&lt;br /&gt;
Search &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; for files ending in &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.JPG&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ find $HOME/ -type f -iname &amp;quot;*.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Get file sizes, via [[du]], of all files in the working directory recursively&lt;br /&gt;
 $ find . -type f -exec du -b &#039;{}&#039; \;&lt;br /&gt;
 $ find . -type f -exec du -b &#039;{}&#039; +;  # performs fewer calls to &#039;du&#039;&lt;br /&gt;
&lt;br /&gt;
: Get file sizes of all files in the working directory recursively &#039;&#039;without&#039;&#039; calling [[du]].&lt;br /&gt;
 $ find . -type f -printf &#039;%s\t%p\n&#039;  # newline-terminated&lt;br /&gt;
 $ find . -type f -printf &#039;%s\t%p\0&#039;  # null-terminated (for feeding to &#039;shuf -z&#039; or &#039;cut -z&#039;)&lt;br /&gt;
&lt;br /&gt;
List all files and directories within the working directory.&lt;br /&gt;
 $ find . -maxdepth 1&lt;br /&gt;
&lt;br /&gt;
List all files and directories precisely 4 subdirectories deep&lt;br /&gt;
 $ find . -mindepth 4 -maxdepth 4&lt;br /&gt;
&lt;br /&gt;
List all files in the working directory recursively, following symlinks up to a maximum depth of 10 subdirectories deep&lt;br /&gt;
 $ find -L . -maxdepth 10 -type f&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the working directory starting with a &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; (i.e. list all dotfiles and dotdirs)&lt;br /&gt;
 $ find . -name &amp;quot;.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
List all files and directories in the working directory starting with a &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ find . ! -name &amp;quot;.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
List all files in the working directory recursively except those ending in either &amp;lt;code&amp;gt;.ots&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ots.bak&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ find . -type f ! \( -name &amp;quot;*.ots&amp;quot; -or -name &amp;quot;*.ots.bak&amp;quot; \)&lt;br /&gt;
&lt;br /&gt;
Find files in the working directory of a minimum size. (e.g. greater than but not equal to 1 MiB)&lt;br /&gt;
 $ find . -type f -size +$((1024 * 1024))c  # calc MiB&lt;br /&gt;
 $ find . -type f -size +$((1024 ** 2))c    # calc MiB&lt;br /&gt;
 $ find . -type f -size +1048576c           # use bytes&lt;br /&gt;
 $ find . -type f -size +1M                 # do not use due to rounding issues&lt;br /&gt;
&lt;br /&gt;
Find files in the working directory of a maximum size. (e.g. less than but not equal to 1 MiB)&lt;br /&gt;
 $ find /path/to/dir -type f -size -1048576c  # use -1048576c instead of -1M due to rounding issues&lt;br /&gt;
&lt;br /&gt;
Find files in &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; older than a certain date (e.g. &amp;lt;code&amp;gt;2024-01-01&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ find /path/to/search -not -newermt 2024-01-01&lt;br /&gt;
&lt;br /&gt;
List files sorted by modification date&lt;br /&gt;
 $ find /path/to/directory -type f -printf &#039;%T@ %p\n&#039; | sort -n | cut -d&#039; &#039; -f2-&lt;br /&gt;
&lt;br /&gt;
List all &amp;lt;code&amp;gt;.json&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;/path/to/dir&amp;lt;/code&amp;gt; that lack an accompanying &amp;lt;code&amp;gt;.txt&amp;lt;/code&amp;gt; file. (e.g. show &amp;lt;code&amp;gt;file.json&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt; does not exist.&lt;br /&gt;
 $ while read -r line; do if [[ ! -f &amp;quot;${line%.json}.txt&amp;quot; ]]; then declare -p line; fi; done &amp;lt; &amp;lt;(find /path/to/dir -type f -name &amp;quot;*.json&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Perform a command (e.g. &amp;lt;code&amp;gt;ots s&amp;lt;/code&amp;gt; on every file via null-terminated pipe to [[xargs]] in random order.&lt;br /&gt;
 $ find . -type f -print0 | shuf --zero-terminated | xargs --null ots s&lt;br /&gt;
&lt;br /&gt;
===[[gcc]]===&lt;br /&gt;
&#039;&#039;Available in Debian &amp;lt;code&amp;gt;build-essential&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
The GNU C Compiler&lt;br /&gt;
&lt;br /&gt;
Compile C-code specified in the command line.&amp;lt;ref name=&amp;quot;se_20141024_gccbashprocsub&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/14034/celada Celada].  ([[2014-10-24]]).  “[https://unix.stackexchange.com/a/164109/411854 Why does BASH process substitution not work with some commands?]”.  Accessed [[2023-07-14]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ gcc -x c &amp;lt;(echo &#039;int main(){return 0;}&#039;)&lt;br /&gt;
 $ echo &#039;int main(){return 0;}&#039; | gcc -x c -&lt;br /&gt;
 $ gcc -x c -o hello &amp;lt;(echo -e &amp;quot;#include &amp;lt;stdio.h&amp;gt;\n main()\n{\nprintf(\&amp;quot;hello, \&amp;quot;);\nprintf(\&amp;quot;world\&amp;quot;);\nprintf(\&amp;quot;\\\n\&amp;quot;);\n}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===[[git]]===&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|git}} &lt;br /&gt;
&lt;br /&gt;
See recent checkout, commit, or other operations by commit reference. (e.g. to find a commit lost because it was on a detached HEAD).  &lt;br /&gt;
 $ git reflog&lt;br /&gt;
&lt;br /&gt;
To automatically sign merges (not default).&lt;br /&gt;
 $ git config merge.gpgsign true&lt;br /&gt;
 $ git -c merge.gpgsign=&#039;true&#039; pull&lt;br /&gt;
&lt;br /&gt;
See remotes.&lt;br /&gt;
 $ git remote -v&lt;br /&gt;
&lt;br /&gt;
Rename a remote. ([https://support.beanstalkapp.com/article/16-how-do-i-rename-an-existing-git-remote ref])&lt;br /&gt;
 $ git remote rename beanstalk origin&lt;br /&gt;
&lt;br /&gt;
Export a git bundle (repository backup)&lt;br /&gt;
 $ git bundle create filename.bundle --all&lt;br /&gt;
&lt;br /&gt;
Trace git operations (especially those involving &amp;lt;code&amp;gt;gpg&amp;lt;/code&amp;gt; signing operations). ([https://gist.github.com/paolocarrasco/18ca8fe6e63490ae1be23e84a7039374 ref])&lt;br /&gt;
 $ GIT_TRACE=1 git commit&lt;br /&gt;
&lt;br /&gt;
Get current commit, short git log entry, and ISO-8601 date&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=iso&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=format:&amp;quot;%Y-%m-%d&amp;quot;  #shorter date&lt;br /&gt;
&lt;br /&gt;
Delete a local branch named `develop` (assuming `develop` is not checked out).&lt;br /&gt;
 $ git branch -d develop&lt;br /&gt;
&lt;br /&gt;
Untrack but don&#039;t remove committed file. ([https://stackoverflow.com/questions/12481639/remove-files-from-git-commit#comment28735458_12481977 Ref/attrib]; useful if you tracked something that shouldn&#039;t be tracked like &amp;lt;code&amp;gt;repo.git/config&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ git rm --cached path/to/committed/file&lt;br /&gt;
&lt;br /&gt;
Pull branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; from remote &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to unchecked out local branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; without altering working tree (useful if worktree files are being used by something else).                                                                                                                                                                                                                                                                           &lt;br /&gt;
 $ git pull origin develop:develop&lt;br /&gt;
&lt;br /&gt;
Set single configuration parameters for the duration of a single command.&lt;br /&gt;
: Disable checking [[GPG]] signatures when running &amp;lt;/code&amp;gt;$ git log&amp;lt;/code&amp;gt;. (see [https://stackoverflow.com/a/19841177 ref])&lt;br /&gt;
 $ git -c log.showSignature=&#039;false&#039; log&lt;br /&gt;
&lt;br /&gt;
: Commit and/or tag with &amp;lt;code&amp;gt;ots --wait&amp;lt;/code&amp;gt; option.&lt;br /&gt;
 $ pathOtsWait=&amp;quot;/home/debuser/.local/share/ots/ots-git-gpg-wrapper-wait.sh&amp;quot;;&lt;br /&gt;
 $ git -c gpg.program=&amp;quot;$pathOtsWait&amp;quot; commit -S&lt;br /&gt;
 $ git -c gpg.program=&amp;quot;$pathOtsWait&amp;quot; tag --sign &amp;quot;some_tag_name&amp;quot; main&lt;br /&gt;
&lt;br /&gt;
Set a remote branch `origin/develop` as the upstream branch for a local branch named `develop`.&amp;lt;ref name=&amp;quot;git_20190816_gitbranch&amp;quot;&amp;gt;“[https://git-scm.com/docs/git-branch/2.23.0 git-branch - List, create, or delete branches]”. ([[2019-08-16]]). &#039;&#039;git-scm.com&#039;&#039;. Accessed [[2023-04-20]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git branch --set-upstream-to=origin/develop develop&lt;br /&gt;
&lt;br /&gt;
Get current commit, short git log entry, and ISO-8601 date&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=iso&lt;br /&gt;
 $ git log -1 --pretty=format:&amp;quot;%h %s %cd&amp;quot; --date=format:&amp;quot;%Y-%m-%d&amp;quot;  #shorter date&lt;br /&gt;
&lt;br /&gt;
Delete a local branch named `develop` (assuming `develop` is not checked out).&lt;br /&gt;
 $ git branch -d develop&lt;br /&gt;
&lt;br /&gt;
Untrack but don&#039;t remove committed file. ([https://stackoverflow.com/questions/12481639/remove-files-from-git-commit#comment28735458_12481977 Ref/attrib]; useful if you tracked something that shouldn&#039;t be tracked like &amp;lt;code&amp;gt;repo.git/config&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ git rm --cached path/to/committed/file&lt;br /&gt;
&lt;br /&gt;
Pull branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; from remote &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; to unchecked out local branch &amp;lt;code&amp;gt;develop&amp;lt;/code&amp;gt; without altering working tree (useful if worktree files are being used by something else).                                                                                                                                                                                                                                                                           &lt;br /&gt;
 $ git pull origin develop:develop&lt;br /&gt;
&lt;br /&gt;
Set a remote branch `origin/develop` as the upstream branch for a local branch named `develop`.&amp;lt;ref name=&amp;quot;git_20190816_gitbranch&amp;quot;&amp;gt;“[https://git-scm.com/docs/git-branch/2.23.0 git-branch - List, create, or delete branches]”. ([[2019-08-16]]). &#039;&#039;git-scm.com&#039;&#039;. Accessed [[2023-04-20]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git branch --set-upstream-to=origin/develop develop&lt;br /&gt;
&lt;br /&gt;
Disable git credential helper for a single command.&amp;lt;ref name=&amp;quot;so_20170517_gitdisablecredhelp&amp;quot;&amp;gt;[https://stackoverflow.com/users/6309/vonc VonC].  ([[2017-05-17]]).  “[https://stackoverflow.com/a/44033298 How do I disable git&#039;s credential helper for a single repository?]”.  &#039;&#039;[[Stack Overflow]]&#039;&#039;.  Accessed [[2023-08-02]].  [https://web.archive.org/web/20230802203919/https://stackoverflow.com/questions/13198143/how-do-i-disable-gits-credential-helper-for-a-single-repository/44033298 Archived] from the original on [[2023-08-02]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ git -c credential.helper= pull origin refs/heads/master&lt;br /&gt;
&lt;br /&gt;
===[[gpg]]===&lt;br /&gt;
&#039;&#039;See also [[GnuPG]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|gpg}}&lt;br /&gt;
&lt;br /&gt;
Verify a file named &amp;lt;code&amp;gt;SHA256SUMS&amp;lt;/code&amp;gt; against detached signature file &amp;lt;code&amp;gt;SHA256SUMS.gpg&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ gpg --verify SHA256SUMS.gpg SHA256SUMS&lt;br /&gt;
&lt;br /&gt;
Use a temporary keyring&lt;br /&gt;
 $ gpg --no-default-keyring --keyring /dev/shm/temp-keyring.kbx&lt;br /&gt;
&lt;br /&gt;
Refresh keys&lt;br /&gt;
 $ gpg --keyserver keys.openpgp.org --receive-keys deadbeef deadbeef&lt;br /&gt;
 $ gpg --keyserver keyserver.ubuntu.com --receive-keys deadbeef deadbeef&lt;br /&gt;
&lt;br /&gt;
Verify a file (e.g. &amp;lt;code&amp;gt;SHA256SUMS&amp;lt;/code&amp;gt;) against a detached signature (e.g. &amp;lt;code&amp;gt;SHA256SUMS.gpg&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ gpg --verify SHA256SUMS.gpg SHA256SUMS&lt;br /&gt;
&lt;br /&gt;
===grep===&lt;br /&gt;
Search for a process named “&amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt;” with &amp;lt;code&amp;gt;ps aux&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;grep bash&amp;lt;/code&amp;gt; but exclude matches of “&amp;lt;code&amp;gt;grep bash&amp;lt;/code&amp;gt;&amp;quot; itself.&lt;br /&gt;
 $ ps aux | grep &amp;quot;bas[h]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ignore binary matches with &amp;lt;code&amp;gt;-I&amp;lt;/code&amp;gt; option.&lt;br /&gt;
 $ grep &amp;quot;a&amp;quot; largeProgram.exe &amp;amp;&amp;amp; echo &amp;quot;Match found.&amp;quot; || echo &amp;quot;No match found.&amp;quot;&lt;br /&gt;
 grep: get_put_char: binary file matches&lt;br /&gt;
 Match found.&lt;br /&gt;
 $ grep -I &amp;quot;a&amp;quot; largeProgram.exe &amp;amp;&amp;amp; echo &amp;quot;Match found.&amp;quot; || echo &amp;quot;No match found.&amp;quot;&lt;br /&gt;
 No match found.&lt;br /&gt;
&lt;br /&gt;
Use [[find]] with [[parallel]] to recursively search a file tree for text matches.&lt;br /&gt;
 $ find . -type f -name &amp;quot;*.tsv&amp;quot; | parallel grep -iHIC3 --color=always -e &#039;mexico&#039; &#039;{}&#039;&lt;br /&gt;
: &amp;lt;code&amp;gt;-name &amp;quot;*.tsv&amp;quot;&amp;lt;/code&amp;gt;: Search only files with names ending in &amp;lt;code&amp;gt;.tsv&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt;: Ignore character capitalization.&lt;br /&gt;
: &amp;lt;code&amp;gt;-H&amp;lt;/code&amp;gt;: Print name of file containing match.&lt;br /&gt;
: &amp;lt;code&amp;gt;-C3&amp;lt;/code&amp;gt;: Show 3 lines before and after match.&lt;br /&gt;
: &amp;lt;code&amp;gt;-I&amp;lt;/code&amp;gt;: Do not search binary files.&lt;br /&gt;
: &amp;lt;code&amp;gt;-e &#039;mexico&#039;&amp;lt;/code&amp;gt;: Search for lines containing the string &amp;lt;code&amp;gt;mexico&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{}&#039;&amp;lt;/code&amp;gt;: Filename word placeholder for [[parallel]].&lt;br /&gt;
&lt;br /&gt;
===[[gs]]===&lt;br /&gt;
See also [[Ghostscript]].&lt;br /&gt;
&lt;br /&gt;
{{Anchor|pdf-no-img}}Remove raster images from a PDF.&amp;lt;ref name=&amp;quot;so_20160616_removepdfraster&amp;quot;&amp;gt;[https://stackoverflow.com/users/359307/kurt-pfeifle Kurt Pfeifle].  ([[2016-06-16]]).  “[https://stackoverflow.com/a/37858893 ]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2023-10-28]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ gs -o noimages.pdf -sDEVICE=pdfwrite -dFILTERIMAGE input.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====[[Regular Expressions]]====&lt;br /&gt;
&lt;br /&gt;
Show lines that match pattern.&lt;br /&gt;
 $ grep &#039;some pattern&#039; -- file.txt&lt;br /&gt;
&lt;br /&gt;
Show lines that don&#039;t match pattern.&lt;br /&gt;
 $ grep -v &#039;some pattern&#039; -- file.txt&lt;br /&gt;
&lt;br /&gt;
Match integers of a range of numbers of digits (e.g. 2 to 3)&lt;br /&gt;
 $ myVar=&amp;quot;$(printf &amp;quot;S2 E3\nS57 E11\nS131 E51\nS7212 E3\n&amp;quot;)&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot;&lt;br /&gt;
 S2 E3&lt;br /&gt;
 S57 E11&lt;br /&gt;
 S131 E51&lt;br /&gt;
 S7212 E3&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot; | grep -E &amp;quot;S[0-9]{2,3} &amp;quot;&lt;br /&gt;
 S57 E11&lt;br /&gt;
 S131 E51&lt;br /&gt;
&lt;br /&gt;
Match http URLs in a text file (see [https://unix.stackexchange.com/a/181258 ref])&lt;br /&gt;
 $ cat input.txt | grep -Eo &amp;quot;(http|https)://[a-zA-Z0-9./?=_%:-]*&amp;quot; | sort -u&lt;br /&gt;
&lt;br /&gt;
===[[gunzip]]===&lt;br /&gt;
See [[{{PAGENAME}}#gzip|#gzip]].&lt;br /&gt;
&lt;br /&gt;
===[[gzip]]===&lt;br /&gt;
Transform a &amp;lt;code&amp;gt;sql.gz&amp;lt;/code&amp;gt; archive into a &amp;lt;code&amp;gt;sql.xz&amp;lt;/code&amp;gt; archive.&lt;br /&gt;
 $ gunzip -c archivo.sql.gz | xz -z - &amp;gt; archivo.sql.xz&lt;br /&gt;
&lt;br /&gt;
===[[head]]===&lt;br /&gt;
Note: Consider using in tandem with [[#tail|tail]] when printing ranges of lines from large files.&lt;br /&gt;
&lt;br /&gt;
Print first 3 lines.&lt;br /&gt;
 $ seq 1 10 | head -n3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
&lt;br /&gt;
Print all but last 3 lines.&lt;br /&gt;
 $ seq 1 10 | head -n-3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
{{Anchor|head-slice}}{{Anchor|head-slice-bytes}}Print 4th to 7th bytes of a non-seekable stream (stdin, FIFO, socket). For seekable file, see [[#tail-slice|#tail]].&lt;br /&gt;
 $ selStart=$((4-1)); selEnd=$((7-1)); selCount=$((selEnd-selStart+1));&lt;br /&gt;
 $ byteSource.sh | head -c $((selEnd+1)) | tail -c $selCount;&lt;br /&gt;
&lt;br /&gt;
===[[iftop]]===&lt;br /&gt;
Show data traffic (i.e. [[bandwidth]] usage) on network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;. Note: consider using in tandem with [[nethogs]].&lt;br /&gt;
 $ sudo iftop -i eth0&lt;br /&gt;
&lt;br /&gt;
===[[iotop]]===&lt;br /&gt;
Show disk write rates for a given process by PID.&lt;br /&gt;
 $ iotop -p PID&lt;br /&gt;
&lt;br /&gt;
List accumulative (&amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;) disk read/write rates for all &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt; processes via process PIDs (&amp;lt;code&amp;gt;-p&amp;lt;/code&amp;gt;), updating every 10 seconds (&amp;lt;code&amp;gt;-d10&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ sudo iotop -ad10 $(pgrep &amp;quot;tar|xz&amp;quot; | xargs -I &amp;quot;{}&amp;quot; echo -n &amp;quot;-p {} &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===[[ip]]===&lt;br /&gt;
Show available network interfaces.&lt;br /&gt;
 $ ip link show&lt;br /&gt;
&lt;br /&gt;
===[[ImageMagick]]===&lt;br /&gt;
Convert a [[PNG]] file into a [[JPEG]] at 90% quality.&lt;br /&gt;
  $ convert input.png -quality 90 output.jpg&lt;br /&gt;
&lt;br /&gt;
Convert a [[GIF]] into a set of frames (Note: May fail with some optimized GIF formats)&lt;br /&gt;
 $ convert Year_2038_problem.gif output%02d.gif&lt;br /&gt;
&lt;br /&gt;
===[[jdupes]]===&lt;br /&gt;
List duplicates in DIR greater than or equal to 100MB.&lt;br /&gt;
 $ jdupes -X size+=:100MB DIR -r&lt;br /&gt;
&lt;br /&gt;
List duplicates within DIR1 (not following subdirectories) and within DIR2 (following subdirectories)&lt;br /&gt;
 $ jdupes -X size+=:100MB DIR1 -R DIR2&lt;br /&gt;
&lt;br /&gt;
List duplicates within DIR1, DIR2, and DIR3 recursively, listing duplicates of DIR1 first&lt;br /&gt;
 $ jdupes -r -O DIR1 DIR2 DIR3&lt;br /&gt;
&lt;br /&gt;
===[[journalctl]]===&lt;br /&gt;
Show previous 1 hour of logs:&lt;br /&gt;
 $ journalctl --utc --all --output=short-iso --since=-1h&lt;br /&gt;
&lt;br /&gt;
Show logs since &amp;lt;code&amp;gt;2023-01-10T09:15&amp;lt;/code&amp;gt; and before &amp;lt;code&amp;gt;2023-01-10T13:00&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $ journalctl --utc --all --output=short-iso --since=\&amp;quot;2023-01-10 09:15\&amp;quot; --until=\&amp;quot;2023-01-10 13:00\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[less]]===&lt;br /&gt;
Display file as scrollable buffer.&lt;br /&gt;
 $ less file.txt&lt;br /&gt;
&lt;br /&gt;
Display file and display live updates.&lt;br /&gt;
 $ less +F file.txt&lt;br /&gt;
&lt;br /&gt;
Display file while truncating display of long lines.&lt;br /&gt;
 $ less -S file.txt&lt;br /&gt;
&lt;br /&gt;
Display file while interpreting [[ANSI]] color codes (e.g. &amp;lt;code&amp;gt;$ jq -C &#039;.&#039; file.json | less --RAW-CONTROL-CHARS&amp;lt;/code&amp;gt;)&lt;br /&gt;
 $ less --RAW-CONTROL-CHARS&lt;br /&gt;
&lt;br /&gt;
===[[locate]]===&lt;br /&gt;
Install on [[ubuntu]] 24.{{bkc|[[2024-12-11]]: Apparently this package used to be part of GNU &amp;lt;code&amp;gt;findutils&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
  $ sudo apt install locate&lt;br /&gt;
&lt;br /&gt;
===[[ls]]===&lt;br /&gt;
Note: assumes &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt; from GNU Coreutils 8.32&lt;br /&gt;
&lt;br /&gt;
List all files, sorted by [[ISO-8601]]-style date.&lt;br /&gt;
 $ ls -alh --time-style=long-iso | sort -k6,7&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei  88K 2005-08-19 19:18 file1&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 930K 2010-07-28 02:01 file2&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 2.4M 2016-05-18 14:52 file3&lt;br /&gt;
 -rw-rw-r-- 1 baltakatei baltakatei 7.2K 2021-05-11 15:29 file4&lt;br /&gt;
&lt;br /&gt;
===[[lsof]]===&lt;br /&gt;
Display all files opened by a process by a single PID.&amp;lt;ref name=&amp;quot;tecmint_20230714_lsof-examples&amp;quot; /&amp;gt;&lt;br /&gt;
 $ lsof -p PID&lt;br /&gt;
&lt;br /&gt;
Display all files opened by a process by name (e.g. [[xz]])&amp;lt;ref name=&amp;quot;tecmint_20230714_lsof-examples&amp;quot;&amp;gt;[[Narad Shrestha]].  ([[2023-07-14]]).  “[https://www.tecmint.com/10-lsof-command-examples-in-linux/ How to Use ‘lsof’ Command to Check Open Files in Linux]”.  &#039;&#039;[[tecmint.com]]&#039;&#039;.  Accessed [[2024-01-05]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ while read -r line; do lsof -p &amp;quot;$line&amp;quot;; printf &amp;quot;\n&amp;quot;; done &amp;lt; &amp;lt;(pgrep xz)&lt;br /&gt;
&lt;br /&gt;
===[[mail]]===&lt;br /&gt;
Reference: https://devanswers.co/you-have-mail-how-to-read-mail-in-ubuntu/&lt;br /&gt;
&lt;br /&gt;
Commands:&lt;br /&gt;
 $ mail   # start mail&lt;br /&gt;
 &amp;amp; h$     # list latest messages&amp;lt;ref name=&amp;quot;johnkerl_19970428_unix-mail&amp;quot;&amp;gt;[[John Kerl]]  ([[1997-04-28]]).  “[https://www.johnkerl.org/doc/mail-how-to.html How to use the Unix command-line mail tool]”.  &#039;&#039;[[johnkerl.org]]&#039;&#039;.  Accessed [[2024-01-05]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 &amp;amp; 5      # read message 5&lt;br /&gt;
 &amp;amp; d 1    # delete message 1&lt;br /&gt;
 &amp;amp; q      # quit mail&lt;br /&gt;
&lt;br /&gt;
Send mail to self:&lt;br /&gt;
 $ mail -s &amp;quot;I&#039;m in your base&amp;quot; -- &amp;quot;$(whoami)&amp;quot; &amp;lt; &amp;lt;(printf &amp;quot;Killing your dudes.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Delete all mail&amp;lt;ref name=&amp;quot;so_20121117_deletemail&amp;quot;&amp;gt;[[timaschew]]. ([[2012-11-17]]). “[https://stackoverflow.com/a/13430307 How do I purge a linux mail box with huge number of emails? [closed]]”. &#039;&#039;Stack Overflow&#039;&#039;. Accessed [[2023-06-06]].&amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ mail -N&lt;br /&gt;
 &amp;amp; d *&lt;br /&gt;
 &amp;amp; quit&lt;br /&gt;
&lt;br /&gt;
===[[make]]===&lt;br /&gt;
&#039;&#039;See [[GNU Make]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Compile source code according to a file named &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
Note, even with [[GNU make]], column 1 indentations REQUIRE a tab (i.e. `\t`), not a space (`\s`).&amp;lt;ref name=&amp;quot;se_20210701_maketabs&amp;quot;&amp;gt;[https://retrocomputing.stackexchange.com/users/79/stephen-kitt Stephen Kitt].  ([[2021-07-01]]).  “[https://retrocomputing.stackexchange.com/a/20293 Why does make only accept tab-indentation?]”  &#039;&#039;Stack Exchange&#039;&#039;.  Accessed [[2023-07-10]]. [https://web.archive.org/web/20230528004825/https://retrocomputing.stackexchange.com/questions/20292/why-does-make-only-accept-tab-indentation Archived] from the original on [[2023-05-28]].&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile multiple source code files with a single `make all` command.&amp;lt;ref name=&amp;quot;so_20110510_makemultiplefiles&amp;quot;&amp;gt;[https://stackoverflow.com/users/714501/cnicutar cnicutar].  ([[2011-05-10]]).  “[https://stackoverflow.com/a/5950445/10850071 Makefile to compile multiple C programs?]”.  &#039;&#039;Stack Overflow&#039;&#039;.  Accessed [[2023-07-13]].  [https://web.archive.org/web/20230714044550/https://stackoverflow.com/questions/5950395/makefile-to-compile-multiple-c-programs/5950445 Archived] from the original on [[2023-07-14]].&amp;lt;/ref&amp;gt; `Makefile` contents:&lt;br /&gt;
&lt;br /&gt;
 all: program1 program2&lt;br /&gt;
 &lt;br /&gt;
 program1: program1.c&lt;br /&gt;
     gcc -o program1 program1.c&lt;br /&gt;
 &lt;br /&gt;
 program2: program2.c&lt;br /&gt;
     gcc -o program2 program2.c&lt;br /&gt;
&lt;br /&gt;
===[[mdadm]]===&lt;br /&gt;
Software [[RAID]] manager.&lt;br /&gt;
&lt;br /&gt;
Check status of RAID device &amp;lt;code&amp;gt;/dev/md0&amp;lt;/code&amp;gt;.&amp;lt;ref name=&amp;quot;se_20120108_mmdadmcheck&amp;quot;&amp;gt;[[Gilles]]. ([[2012-01-08]]). “[https://unix.stackexchange.com/a/28642/411854 How to check &#039;mdadm&#039; RAIDs while running?]”. Accessed [[2023-03-26]]. [https://web.archive.org/web/20150925044124/http://unix.stackexchange.com/questions/28636/how-to-check-mdadm-raids-while-running/28642#28642 Archived] from the original on [[2015-09-25]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Check status of all RAID devices.&amp;lt;ref name=&amp;quot;se_20120108_mmdadmcheck&amp;quot; /&amp;gt;&lt;br /&gt;
 $ sudo cat /proc/mdstat&lt;br /&gt;
&lt;br /&gt;
===mimetype===&lt;br /&gt;
Get file mimetype&lt;br /&gt;
 $ cat file.jpg | mimetype --stdin&lt;br /&gt;
&lt;br /&gt;
===mktemp===&lt;br /&gt;
Create a temporary directory.&lt;br /&gt;
 $ mktemp -d&lt;br /&gt;
 /tmp/tmp.FV7MlItXOs&lt;br /&gt;
&lt;br /&gt;
Create a temporary directory and store its name.&lt;br /&gt;
 $ myTempDir=&amp;quot;$(mktemp -d)&amp;quot;; declare -p myTempDir;&lt;br /&gt;
 declare -- myTempDir=&amp;quot;/tmp/tmp.kmHLhKvlQV&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Create a temporary file&lt;br /&gt;
 $ mktemp&lt;br /&gt;
 /tmp/tmp.lnq5aBZmuK&lt;br /&gt;
&lt;br /&gt;
Create a temporary file in a custom directory&lt;br /&gt;
 $ myDir=&amp;quot;$HOME/temp&amp;quot;; mkdir &amp;quot;$myDir&amp;quot;;&lt;br /&gt;
 $ mktemp -p &amp;quot;$myDir&amp;quot;&lt;br /&gt;
 /home/baltakatei/temp/tmp.YENA9Yp7lU&lt;br /&gt;
&lt;br /&gt;
Create a temporary file or directory with a custom name template.&lt;br /&gt;
 $ mktemp foo_XXX&lt;br /&gt;
 foo_yVu&lt;br /&gt;
 $ mktemp foo_XXXXXXXX&lt;br /&gt;
 foo_rVJOX8GE&lt;br /&gt;
 $ mktemp -d bar_XXXXXXXX&lt;br /&gt;
 bar_10Bt5tfy&lt;br /&gt;
&lt;br /&gt;
===[[mpv]]===&lt;br /&gt;
Use newline-delimited stdin list of file paths as playlist.&lt;br /&gt;
 $ find ~/Music/ -type f | mpv --playlist=-&lt;br /&gt;
&lt;br /&gt;
Enable shuffle&lt;br /&gt;
 $ mpv --shuffle&lt;br /&gt;
&lt;br /&gt;
Settings for fast playback (e.g. 2x){{bkc|[[2024-08-11]]: This option may cause issues with playback of some [[FLAC]] files.}}&lt;br /&gt;
 $ mpv --af=scaletempo=stride=15:overlap=1:search=15&#039;&lt;br /&gt;
&lt;br /&gt;
Play video with subtitle file&lt;br /&gt;
 $ mpv --embed-subs=&amp;quot;$filepath&amp;quot; video.mp4&lt;br /&gt;
&lt;br /&gt;
===[[neofetch]]===&lt;br /&gt;
Show system information without art&lt;br /&gt;
 $ neofetch --off&lt;br /&gt;
&lt;br /&gt;
Show system information without formatting or art.&lt;br /&gt;
 $ neofetch --stdout&lt;br /&gt;
&lt;br /&gt;
===[[nethogs]]===&lt;br /&gt;
Show data traffic (i.e. [[bandwidth]] usage) by process on network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ sudo nethogs eth0&lt;br /&gt;
&lt;br /&gt;
: Toggle between data rates and total data amounts with `m`.&lt;br /&gt;
&lt;br /&gt;
===[[notify-send]]===&lt;br /&gt;
Note (Debian): Installed via the [[libnotify-bin]] package.&lt;br /&gt;
&lt;br /&gt;
Create a system notification:&lt;br /&gt;
 $ notify-send &amp;quot;title&amp;quot; &amp;quot;body&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[openbox]]===&lt;br /&gt;
A window manager for [[LxQt]] and [[Lubuntu]].&lt;br /&gt;
&lt;br /&gt;
Reload configuration files.{{bkc|[[2024-08-21]]: Such as those kept at &amp;lt;code&amp;gt;/usr/share/themes/Mikachu/openbox-3/themerc&amp;lt;/code&amp;gt;.  }}&amp;lt;ref name=&amp;quot;askubuntu_20161006_openbox-window-resize-grab-area&amp;quot;&amp;gt;[https://askubuntu.com/users/248158/dk-bose DK Bose].  ([[2016-10-06]]).  “[https://askubuntu.com/a/834022 Size of grab area for resizing window in lubuntu]”.  Accessed [[2024-08-21]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ openbox --reconfigure&lt;br /&gt;
&lt;br /&gt;
===[[ots]]===&lt;br /&gt;
Use [[OpenTimestamps]] ([https://opentimestamps.org/ website]) to timestamp files against the [[Bitcoin]] blockchain. Program by [[Peter Todd]], a [[Bitcoin Core]] developer.&lt;br /&gt;
&lt;br /&gt;
Install Opentimestamps on Ubuntu 24 via [[pipx]].{{bkc|[[2025-01-18]]: [[pipx]] recommended to install [[ots]] due to [[PEP 668]] ([https://peps.python.org/pep-0668/ link] mandating partitioning operating system environment from user-space. }} Provides the &amp;lt;code&amp;gt;ots&amp;lt;/code&amp;gt; executable.&lt;br /&gt;
 $ sudo apt install pipx&lt;br /&gt;
 $ pipx install opentimestamps-client&lt;br /&gt;
&lt;br /&gt;
Timestamp &amp;lt;code&amp;gt;file.txt&amp;lt;/code&amp;gt;. Creates timestamp file &amp;lt;code&amp;gt;file.txt.ots&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ ots s file.txt&lt;br /&gt;
 $ ots stamp file.txt&lt;br /&gt;
&lt;br /&gt;
Upgrade a timestamp file. Creates a backup file (&amp;lt;code&amp;gt;file.txt.ots.bak&amp;lt;/code&amp;gt;) if necessary.&lt;br /&gt;
 $ ots upgrade file.txt.ots&lt;br /&gt;
 $ ots u file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Verify a timestamp file.&lt;br /&gt;
 $ ots verify file.txt.ots&lt;br /&gt;
 $ ots v file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Verify a specific file against a specific timestamp file.&lt;br /&gt;
 $ ots v -f file.txt file.txt.ots&lt;br /&gt;
&lt;br /&gt;
Timestamp all files in working directory that lack a timestamp, running &amp;lt;code&amp;gt;ots&amp;lt;/code&amp;gt; on 1000 files at a time.&lt;br /&gt;
 $ din=&amp;quot;$(pwd)&amp;quot;; while read -r line; do if [[ ! -f &amp;quot;${line}.ots&amp;quot; ]]; then printf &amp;quot;%s\0&amp;quot; &amp;quot;$line&amp;quot;; fi; done &amp;lt; &amp;lt;(find &amp;quot;$din&amp;quot; -mindepth 1 -maxdepth 1 -type f ! -name &amp;quot;*.ots&amp;quot; | shuf; ) | xargs -0 -L 1000 ots s&lt;br /&gt;
&lt;br /&gt;
===[[pandoc]]===&lt;br /&gt;
Convert [[markdown]] text file into mediawiki code.&amp;lt;ref name=&amp;quot;so_20100926_markdown-to-mediawiki&amp;quot;&amp;gt;[https://stackoverflow.com/users/315013/applicative applicative].  ([[2010-09-26]]).  “[https://stackoverflow.com/a/3796608 Are there any tools to convert markdown to Wiki text in other formats]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2024-02-27]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ pandoc -f markdown -t mediawiki -o output.wc input.txt&lt;br /&gt;
&lt;br /&gt;
===[[par2]]===&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|par2}}&lt;br /&gt;
&lt;br /&gt;
Create parity files of &amp;lt;code&amp;gt;archive.tar.xz&amp;lt;/code&amp;gt; with default settings. &lt;br /&gt;
 $ par2 create archive.tar.xz.par2 archive.tar.xz&lt;br /&gt;
&lt;br /&gt;
===[[GNU parallel|parallel]]===&lt;br /&gt;
&#039;&#039;See [[GNU parallel]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Duplicate a set of directories (non-recursively) (e.g. home sub-directories). Metadata not copied.&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -mindepth 1 -maxdepth 1 -type d | parallel mkdir &amp;quot;$HOME/{}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Hash every file in the home directory.&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel --jobs=&amp;quot;&amp;quot; sha256sum &#039;{}&#039;               # use all CPUs&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel --jobs=&amp;quot;25%&amp;quot; sha256sum &#039;{}&#039;  # use at most 25% of CPU cores&lt;br /&gt;
 $ find &amp;quot;$HOME&amp;quot; -type f | parallel sha256sum &#039;{}&#039;               # &lt;br /&gt;
&lt;br /&gt;
Run a thread for every item in an array.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ myArray=(&amp;quot;jan&amp;quot;); myArray=(&amp;quot;feb&amp;quot;); myArray=(&amp;quot;mar&amp;quot;);&lt;br /&gt;
$ declare -p myArray&lt;br /&gt;
declare -a myArray=([0]=&amp;quot;jan&amp;quot; [1]=&amp;quot;feb&amp;quot; [2]=&amp;quot;mar&amp;quot;)&lt;br /&gt;
$ parallel echo &#039;{}&#039; ::: &amp;quot;${myArray[@]}&amp;quot;&lt;br /&gt;
jan&lt;br /&gt;
feb&lt;br /&gt;
mar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Supply different arguments for each job with an `--arg-file`.&lt;br /&gt;
 $ printf &amp;quot;foo\tbee\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ printf &amp;quot;bar\tboo\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ printf &amp;quot;baz\ttax\n&amp;quot; &amp;gt;&amp;gt; args.txt;&lt;br /&gt;
 $ parallel --col-sep &#039;\t&#039; --arg-file args.txt echo &#039;{2}&#039; &#039;{1}&#039;;&lt;br /&gt;
 bee foo&lt;br /&gt;
 boo bar&lt;br /&gt;
 tax baz&lt;br /&gt;
&lt;br /&gt;
Avoid OOM by suspending jobs on low memory via &amp;lt;code&amp;gt;--memsuspend 512M&amp;lt;/code&amp;gt; (e.g. 512 [[mebibytes]]), which suspends job if less than &amp;lt;code&amp;gt;2 * 512 = 1024&amp;lt;/code&amp;gt; mebibytes memory free. If only one job remains, it will not suspend.&lt;br /&gt;
 $ seq 1 10 | parallel --memsuspend 512M echo &#039;{}&#039;;&lt;br /&gt;
&lt;br /&gt;
===paste===&lt;br /&gt;
List contents of three files as columns.&lt;br /&gt;
 $ printf &amp;quot;foo\nbar\nbaz\n&amp;quot; &amp;gt; 1.txt&lt;br /&gt;
 $ printf &amp;quot;bee\nboo\ntax\n&amp;quot; &amp;gt; 2.txt&lt;br /&gt;
 $ paste 1.txt 2.txt&lt;br /&gt;
 foo	bee&lt;br /&gt;
 bar	boo&lt;br /&gt;
 baz	tax&lt;br /&gt;
&lt;br /&gt;
Split lines of a single file into columns&lt;br /&gt;
 $ seq 1 13 | paste - - -  # three columns&lt;br /&gt;
 1	2	3&lt;br /&gt;
 4	5	6&lt;br /&gt;
 7	8	9&lt;br /&gt;
 10	11	12&lt;br /&gt;
 13&lt;br /&gt;
&lt;br /&gt;
===pipx===&lt;br /&gt;
[[pipx]] is a tool that automates the creation of [[virtual environment]]s when installing command-line [[python]] packages via [[pip]].&lt;br /&gt;
&lt;br /&gt;
Install [[pipx]].&lt;br /&gt;
 $ sudo apt install pipx&lt;br /&gt;
 $ pipx ensurepath   # make sure PATH environment variable contains pipx directories&lt;br /&gt;
&lt;br /&gt;
Install [[OpenAI]] [[Whisper (speech recognition system)|Whisper]]&lt;br /&gt;
 $ sudo apt install ffmpeg   # get ffmpeg dependency&lt;br /&gt;
 $ pipx install openai-whisper&lt;br /&gt;
&lt;br /&gt;
Upgrade OpenAI Whisper&lt;br /&gt;
 $ pipx upgrade openai-whisper  # as opposed to &#039;pip install -U openai-whisper&#039;&lt;br /&gt;
&lt;br /&gt;
===play ([[sox]])===&lt;br /&gt;
Play an audio file from the [[sox]] package. (limited to formats such as MP3, WAV, AIFF, OGG)&lt;br /&gt;
 $ play ~/Music/song.wav&lt;br /&gt;
&lt;br /&gt;
Play an audio file via [[cron]]. To do so, insert the following lines into a [[bash]] script run by [[cron]] (assuming [[Debian]] system)&amp;lt;ref name=&amp;quot;askubuntu_20180610_cron-chime&amp;quot;&amp;gt;[[WinEunuuchs2Unix]].  ([[2018-06-10]]).  “[https://askubuntu.com/a/1045344 Help using crontab to play a sound]”.  [[askubuntu.com]].  Accessed [[2025-10-11]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
(&lt;br /&gt;
  export XDG_RUNTIME_DIR=/run/user/$(id -u);&lt;br /&gt;
  play --vol 0.2 $HOME/Music/chime.wav;&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[ps]]===&lt;br /&gt;
Show process PIDs and full commands.&lt;br /&gt;
 $ ps -eo pid,args&lt;br /&gt;
&lt;br /&gt;
===[[pdftk]]===&lt;br /&gt;
Install{{bkc|[[2025-01-26]]: As of [[2025]], &amp;lt;code&amp;gt;$ sudo apt install pdftk&amp;lt;/code&amp;gt; no longer works, likely due to licensing issues with [[PDF Labs]] ([https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ web]) }}&amp;lt;ref name=&amp;quot;gitlab_2023_pdftk-java&amp;quot;&amp;gt;[[Marc Vinyals]].  ([[2023]]).  “[https://gitlab.com/pdftk-java/pdftk pdftk-java]”.  &#039;&#039;[[gitlab.com]]&#039;&#039;.  Accessed [[2025-01-26]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sudo apt install pdftk-java &lt;br /&gt;
&lt;br /&gt;
Combine PDFs&lt;br /&gt;
 $ pdftk doc1.pdf doc2.pdf doc3.pdf cat output output.pdf&lt;br /&gt;
&lt;br /&gt;
Extract page range from a PDF. (e.g. extract first 13 pages)&lt;br /&gt;
 $ pdftk input.pdf cat 1-13 output output.pdf&lt;br /&gt;
&lt;br /&gt;
===[[pdftotext]]===&lt;br /&gt;
Install.&lt;br /&gt;
 $ sudo apt install poppler-utils&lt;br /&gt;
&lt;br /&gt;
Convert PDF to text. (Note: If text is [[Raster graphics|rasterized]], use [[#tesseract|tesseract]] instead). &lt;br /&gt;
 $ pdftotext output.pdf output.txt&lt;br /&gt;
&lt;br /&gt;
===[[pgrep]]===&lt;br /&gt;
Exit early if a specific process (e.g. &amp;lt;code&amp;gt;yt-dlp&amp;lt;/code&amp;gt;) is already running.&lt;br /&gt;
  $ if pgrep &amp;quot;yt-dlp&amp;quot; 1&amp;gt;/dev/random 2&amp;gt;&amp;amp;1; then exit 1; fi;&lt;br /&gt;
&lt;br /&gt;
===printf===&lt;br /&gt;
====GNU Coreutils====&lt;br /&gt;
Print a &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; character.&amp;lt;ref name=&amp;quot;so_20130221_printf-exclam&amp;quot;&amp;gt;[https://stackoverflow.com/users/465183/gilles-qu%c3%a9not Giles Quénot].  ([[2013-02-21]]).  “[https://stackoverflow.com/a/15011849 How to printf an exclamation mark in bash?]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2026-01-15]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ printf &amp;quot;\041\n&amp;quot;&lt;br /&gt;
 !&lt;br /&gt;
&lt;br /&gt;
Round a float to nearest integer&amp;lt;ref&amp;gt;{{bk}}: [[2023-09-09]]: Tested with GNU Coreutils 8.32&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;;&lt;br /&gt;
  14&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  14.29&lt;br /&gt;
  $ myVar=&amp;quot;14.28571&amp;quot;; printf &amp;quot;%.1f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  14.3&lt;br /&gt;
  $ myVar=&amp;quot;-14.28571&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  -14.29&lt;br /&gt;
  $ myVar=&amp;quot;28.57142&amp;quot;; printf &amp;quot;%.2f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  28.57&lt;br /&gt;
  $ myVar=&amp;quot;28.57142&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  29&lt;br /&gt;
&lt;br /&gt;
: Note, GNU Coreutils printf uses “[[Rounding|round to even]]” (i.e. “Bankerʼs rounding”) for cases when 5 must be rounded.&amp;lt;ref name=&amp;quot;se_20151101_printfrounding&amp;quot;&amp;gt;user79742.  ([[2015-11-01]]).  “[https://unix.stackexchange.com/a/240113 Weird float rounding behavior with printf]”.  &#039;&#039;[[unix.stackexchange.com]]&#039;&#039;.  Accessed [[2023-10-04]].  [https://web.archive.org/web/20231004195404/https://unix.stackexchange.com/questions/240112/weird-float-rounding-behavior-with-printf/240113#240113 Archived] from the original on [[2023-10-04]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
  $ myVar=&amp;quot;5.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  6&lt;br /&gt;
  $ myVar=&amp;quot;6.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot; &lt;br /&gt;
  6&lt;br /&gt;
  $ myVar=&amp;quot;7.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot;&lt;br /&gt;
  8&lt;br /&gt;
  $ myVar=&amp;quot;8.5&amp;quot;; printf &amp;quot;%.0f\n&amp;quot; &amp;quot;$myVar&amp;quot; &lt;br /&gt;
  8&lt;br /&gt;
&lt;br /&gt;
Print integer with leading zeroes. (see [https://stackoverflow.com/a/18460742/10850071 ref])&lt;br /&gt;
&lt;br /&gt;
 $ n=7; printf &amp;quot;%05d\n&amp;quot; &amp;quot;$n&amp;quot;;&lt;br /&gt;
 00007&lt;br /&gt;
&lt;br /&gt;
Print a bash array (see [https://stackoverflow.com/a/15692004/10850071 ref])&lt;br /&gt;
&lt;br /&gt;
 $ declare -a my_array; my_array+=(&amp;quot;jan&amp;quot;); my_array+=(&amp;quot;feb&amp;quot;);&lt;br /&gt;
 $ printf &#039;%s\n&#039; &amp;quot;${my_array[@]}&amp;quot;;&lt;br /&gt;
 jan&lt;br /&gt;
 feb&lt;br /&gt;
&lt;br /&gt;
Print a progress bar&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 total_iterations=100&lt;br /&gt;
 current_iteration=0&lt;br /&gt;
 &lt;br /&gt;
 while [ $current_iteration -lt $total_iterations ]; do&lt;br /&gt;
     # Your actual loop content goes here&lt;br /&gt;
     sleep 0.1 # This is just an example, replace with your actual task&lt;br /&gt;
 &lt;br /&gt;
     # Calculate progress percentage&lt;br /&gt;
     progress_percentage=$(( 100 * current_iteration / total_iterations ))&lt;br /&gt;
 &lt;br /&gt;
     # Print progress percentage without causing scrolling&lt;br /&gt;
     printf &amp;quot;\rProgress: %3d%%&amp;quot; $progress_percentage&lt;br /&gt;
 &lt;br /&gt;
     # Increment the iteration counter&lt;br /&gt;
     current_iteration=$(( current_iteration + 1 ))&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 # Print a newline character to move to the next line after the loop is done&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
Convert hexadecimal into decimal&lt;br /&gt;
 $ printf &amp;quot;%u\n&amp;quot; &amp;quot;0xFFFF&amp;quot;&lt;br /&gt;
 65535&lt;br /&gt;
&lt;br /&gt;
====C stdio.h====&lt;br /&gt;
Print an int as a hexadecimal&lt;br /&gt;
&lt;br /&gt;
 int a=17; printf(&amp;quot;%x\n&amp;quot;,a);&lt;br /&gt;
&lt;br /&gt;
Print an int as a binary (&amp;lt;code&amp;gt;glibc &amp;gt;2.35&amp;lt;/code&amp;gt;, check via &amp;lt;code&amp;gt;$ ldd --version&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 int main()&lt;br /&gt;
   int a=1023; printf(&amp;quot;%b\n&amp;quot;,a); return 0;&lt;br /&gt;
&lt;br /&gt;
: When compiled with &amp;lt;code&amp;gt;gcc-12&amp;lt;/code&amp;gt; (previous versions throw errors) and glibc &amp;gt;2.35, this prints:&lt;br /&gt;
&lt;br /&gt;
 1111111111&lt;br /&gt;
&lt;br /&gt;
===[[rev]]===&lt;br /&gt;
Get a counted list of unique file extensions in the current working directory.&lt;br /&gt;
&lt;br /&gt;
 $ find . -mindepth 1 -maxdepth 1 -type f | rev | cut -d&#039;.&#039; -f1 | rev | sort | uniq -c | sort -hk1;&lt;br /&gt;
&lt;br /&gt;
: An explanation:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
$ find . -mindepth 1 -maxdepth 1 -type f | \  # Get a list of files in current working directory.&lt;br /&gt;
  rev | \              # Reverse order of characters within each line.&lt;br /&gt;
  cut -d&#039;.&#039; -f1 | \    # Cut all characters except for those before the final `.` in the path.&lt;br /&gt;
  rev | \              # Restore order of characters within each line.&lt;br /&gt;
  sort | \             # Sort for uniq.&lt;br /&gt;
  uniq -c | \          # List and count unique lines.&lt;br /&gt;
  sort -hk1;           # Sort by line counts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[rsync]]===&lt;br /&gt;
Note: These commands assume use of &#039;&#039;rsync&#039;&#039; version &amp;lt;code&amp;gt;3.2.7 protocol version 31&amp;lt;/code&amp;gt;, which is available on [[Debian]] version &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|rsync}}&lt;br /&gt;
&lt;br /&gt;
Exclude all dotfiles or dotdirectories at any directory level.&lt;br /&gt;
 $ echo &amp;quot;.*/**&amp;quot; &amp;gt;&amp;gt; exclude.txt&lt;br /&gt;
 $ rsync -avu --exclude-from=exclude.txt somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
&lt;br /&gt;
Copy all files contained within a directory named &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; located within &amp;lt;code&amp;gt;somepath&amp;lt;/code&amp;gt; into a directory named &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; within &amp;lt;code&amp;gt;anotherpath&amp;lt;/code&amp;gt;, preserving file attributes (e.g. user:group, read/write/execute permissions), and overwriting existing files within &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; if they differ in modification date and/or size from those of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;. The forward slashes after &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; are significant; omitting them may cause the creation of a new directory layer instead of synchronizing the file trees of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
&lt;br /&gt;
Make the contents of &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; exactly match that of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;, overwriting and deleting files as required in &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; via the &amp;lt;code&amp;gt;--delete-before&amp;lt;/code&amp;gt; command, performing all deletions before file copying begins. This is useful for updating a backup of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; at &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --delete-before somepath/SOURCE/ anotherpath/somedir/DEST/&lt;br /&gt;
&lt;br /&gt;
Copy files from a local &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt; in a remote user&#039;s home directory (e.g. &amp;lt;code&amp;gt;/home/username/DEST/&amp;lt;/code&amp;gt;) via the [[ssh]] command.&lt;br /&gt;
 $ rsync -avu -e &#039;ssh&#039; somepath/SOURCE/ username@hostname:DEST/&lt;br /&gt;
&lt;br /&gt;
Copy files only files containing &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt; in their filenames from a &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;. This preserves the directory tree of &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
:: Exclude &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt;files larger than 100 000 000 bytes.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; --max-size=100MB --remove-source-files somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
: Move (i.e. extract) only the files containing &amp;lt;code&amp;gt;_small&amp;lt;/code&amp;gt; in their file names, deleting them from &amp;lt;code&amp;gt;SOURCE&amp;lt;/code&amp;gt; if successfully copied to &amp;lt;code&amp;gt;DEST&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ rsync -avu --progress --include &#039;*/&#039; --include &#039;*_small*&#039; --exclude &#039;*&#039; --remove-source-files somepath/SOURCE/ somepath/DEST/&lt;br /&gt;
&lt;br /&gt;
Recreate full path at destination.&amp;lt;ref name=&amp;quot;askubuntu_20141121_rsync-preserve-dirtree&amp;quot;&amp;gt;[https://askubuntu.com/users/193328/jan jan].  ([[2014-11-21]]).  “[https://askubuntu.com/a/552122 Preserve directory tree while copying with rsync]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2024-04-01]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ rsync -avu -R somepath/SOURCE/ anotherpath/DEST/&lt;br /&gt;
 $ ls anotherpath/DEST/somepath/SOURCE/&lt;br /&gt;
&lt;br /&gt;
===sed===&lt;br /&gt;
[https://www.gnu.org/software/sed/manual/sed.html GNU sed manual].&lt;br /&gt;
&lt;br /&gt;
Replace first instance of a string.&lt;br /&gt;
 $ echo &amp;quot;foo foo&amp;quot; | sed &#039;s/oo/ee/&#039;&lt;br /&gt;
 fee foo&lt;br /&gt;
&lt;br /&gt;
Replace all instances of a string.&lt;br /&gt;
 $ echo &amp;quot;foo foo&amp;quot; | sed &#039;s/oo/ee/g&#039;&lt;br /&gt;
 fee fee&lt;br /&gt;
&lt;br /&gt;
Replace all instances of a string in a file (CAUTION: modifies the file):&lt;br /&gt;
 $ printf &amp;quot;foo\n&amp;quot; &amp;amp;gt; bar.txt&lt;br /&gt;
 $ cat bar.txt&lt;br /&gt;
 foo&lt;br /&gt;
 $ sed -i &#039;s/oo/ee/g&#039; bar.txt&lt;br /&gt;
 $ cat bar.txt&lt;br /&gt;
 fee&lt;br /&gt;
&lt;br /&gt;
Append something to the start of each line ([https://unix.stackexchange.com/a/443150 ref]):&lt;br /&gt;
 $ printf &amp;quot;bar\nbaz\n&amp;quot; | sed &#039;s/^/foo/&#039;&lt;br /&gt;
 foobar&lt;br /&gt;
 foobaz&lt;br /&gt;
 $ printf &amp;quot;bar\nbaz\n&amp;quot; | sed &#039;s~^~foo~&#039;   # use ~ instead of / as regex delimiter&lt;br /&gt;
 foobar&lt;br /&gt;
 foobaz&lt;br /&gt;
&lt;br /&gt;
Delete blank lines. (see [https://unix.stackexchange.com/a/76066/411854 ref])&lt;br /&gt;
 $ printf &amp;quot;foo\n\nbar\n&amp;quot;&lt;br /&gt;
 foo&lt;br /&gt;
 &lt;br /&gt;
 bar&lt;br /&gt;
 $ printf &amp;quot;foo\n\nbar\n&amp;quot; | sed &#039;/^$/d&#039;&lt;br /&gt;
 foo&lt;br /&gt;
 bar&lt;br /&gt;
&lt;br /&gt;
Remove an initial `./` from the start of file lists produced by `find` whether newlines or NULL chars are used as list delimiters. Example: [[sumdir]] v0.1.2&lt;br /&gt;
 $ sed -E &#039;s/(^|\x00)\.\//\1/g&#039;&lt;br /&gt;
&lt;br /&gt;
Print specific lines of a file. (i.e. get a specific line from a file)&lt;br /&gt;
 $ some_command | sed -n &#039;2p&#039;  # prints line 2 of standard input&lt;br /&gt;
 $ sed -n &#039;2p&#039; file.txt        # prints line 2&amp;lt;ref&amp;gt;{{bk}}; [[2024-01-29]]: See https://stackoverflow.com/a/74076669&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sed &#039;2q;d&#039; big_file.txt     # prints line of a very large file.&amp;lt;ref&amp;gt;{{bk}}; [[2024-01-29]]: See https://stackoverflow.com/a/30657175 &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ sed -n &#039;2p&#039;&lt;br /&gt;
 $ sed -n &#039;2,5p&#039; file.txt      # prints lines 2 through 5 inclusive.{{bkc|[[2025-04-04]]: Consider using [[#tail]] and [[#head]] &amp;lt;code&amp;gt;$ seq 1 100 &amp;amp;#124; tail -n+50 &amp;amp;#124; head -n4&amp;lt;/code&amp;gt; (get values 50 to 53).}}&lt;br /&gt;
 $ sed -n &#039;2p;5p;&#039; file.txt    # prints only lines 2 and 5.&lt;br /&gt;
&lt;br /&gt;
Substitute special characters&lt;br /&gt;
 $ echo &amp;quot;2 * 5 = 8&amp;quot; | sed -E -e &#039;s/*/x/&#039;    # doesn&#039;t work because asterisk is special regex&lt;br /&gt;
 sed: -e expression #1, char 6: Invalid preceding regular expression&lt;br /&gt;
 $ echo &amp;quot;2 * 5 = 10&amp;quot; | sed -E -e &#039;s/\*/x/&#039;  # works&lt;br /&gt;
&lt;br /&gt;
===seq===&lt;br /&gt;
Generate a sequence of integers, newline-delimited.&lt;br /&gt;
 $ seq 1 3&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
&lt;br /&gt;
===sfill===&lt;br /&gt;
&#039;&#039;Installable via &amp;lt;code&amp;gt;apt install secure-delete&amp;lt;/code&amp;gt;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill all available freespace by writing random noise to a file in directory &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ sfill -ll ./dir/&lt;br /&gt;
&lt;br /&gt;
===[[ssh]]===&lt;br /&gt;
Connect to a local machine&#039;s [[Syncthing]] instance via [[firefox]].&lt;br /&gt;
 $ firefox 127.0.0.1:8384&lt;br /&gt;
&lt;br /&gt;
Connect to a remote server&#039;s [[Syncthing]] instance via [[ssh]] port forwarding and [[firefox]].&lt;br /&gt;
 $ ssh -L 127.0.0.1:8388:127.0.0.1:8384 user@hostname&lt;br /&gt;
 $ firefox 127.0.0.1:8388&lt;br /&gt;
&lt;br /&gt;
Get a host&#039;s SSH fingerprint&amp;lt;ref name=&amp;quot;se_20160509_sshkeyscan&amp;quot;&amp;gt;[[Anthony Geoghegan]]. ([[2016-05-09]]). “[https://unix.stackexchange.com/a/268692/411854 Get SSH server key fingerprint]”. Accessed [[2023-06-25]]. &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub&lt;br /&gt;
&lt;br /&gt;
: Get all hostsʼ SSH fingerprints.&lt;br /&gt;
 $ ssh-keygen -lf &amp;lt;(ssh-keyscan localhost 2&amp;gt;/dev/random; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configure [[gnupg]], [[ssh]], and smartcard on [[macOS]]====&lt;br /&gt;
Install necessary [[homebrew]] packages&lt;br /&gt;
 % [[#brew|brew]] update &amp;amp;&amp;amp; brew upgrade;&lt;br /&gt;
 % brew install gnupg pinentry-mac&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ gpg -K&amp;lt;/code&amp;gt; should have a line like this with &amp;lt;code&amp;gt;&amp;amp;#91;A&amp;amp;#93;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ssb&amp;gt;  rsa4096/0x5F9D26B9A598A2D3 2018-05-16 [A] [expires: 2026-07-07]&lt;br /&gt;
&lt;br /&gt;
Configure [[GnuPG]] to use &amp;lt;code&amp;gt;pinentry-mac&amp;lt;/code&amp;gt;&lt;br /&gt;
 % which pinentry;&lt;br /&gt;
 /opt/homebrew/bin/pinentry-mac;&lt;br /&gt;
 % which pinentry-mac &amp;gt;&amp;gt; ~/.gnupg/gpg-agent.conf;&lt;br /&gt;
&lt;br /&gt;
Configure [[GnuPG]] to be able to talk to [[ssh]] by:&lt;br /&gt;
: Adding these lines to &amp;lt;code&amp;gt;~/.gnupg/gpg-agent.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default-cache-ttl 300&lt;br /&gt;
max-cache-ttl 999999&lt;br /&gt;
enable-ssh-support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: and exporting these environment variables to your shell (probably &amp;lt;code&amp;gt;~/.[[zsh]]rc&amp;lt;/code&amp;gt; as of [[2024]])&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export GPG_TTY=&amp;quot;$(tty)&amp;quot;;&lt;br /&gt;
export SSH_AUTH_SOCK=&amp;quot;$(gpgconf --list-dirs agent-ssh-socket)&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Export the [[ssh]] public key from your [[OpenPGP]] key via [[GnuPG]]:&lt;br /&gt;
: Get public key line to add to remote machine&lt;br /&gt;
 $ gpg --export-ssh-key YOUR_KEY_ID &amp;gt; my_gpg_ssh_pubkey.txt&lt;br /&gt;
&lt;br /&gt;
: This should look like:&lt;br /&gt;
 $ cat my_gpg_ssh_pubkey.txt &lt;br /&gt;
 $ ssh-rsa AAAAB3NzaC1yc2EAAAA… user@host&lt;br /&gt;
&lt;br /&gt;
: Add ssh pubkey to remote machine by&lt;br /&gt;
:: running this command remotely (via a preëxisting [[ssh]] session or by visiting the remote machine physically)&lt;br /&gt;
 remote$ echo &amp;quot;ssh-rsa AAAAB3NzaC1yc2EAAAA… user@host&amp;quot; &amp;gt;&amp;gt; ~/.ssh/authorized_keys&lt;br /&gt;
:: or by running this comand locally:&lt;br /&gt;
 $ gpg --export-ssh-key YOUR_KEY_ID | ssh user@remote &#039;cat &amp;gt;&amp;gt; ~/.ssh/authorized_keys&#039;&lt;br /&gt;
&lt;br /&gt;
Restart [[gnupg]] to apply configuration changes:&lt;br /&gt;
 $ gpgconf --kill gpg-agent;&lt;br /&gt;
 $ gpgconf --launch gpg-agent;&lt;br /&gt;
&lt;br /&gt;
Test&lt;br /&gt;
 $ ssh user@remote&lt;br /&gt;
&lt;br /&gt;
: If you never have to use the server&#039;s password for the &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; user, then you succeeded.&lt;br /&gt;
&lt;br /&gt;
{{#lsth:{{PAGENAME}}/prv|ssh}}&lt;br /&gt;
&lt;br /&gt;
===[[sort]]===&lt;br /&gt;
Sort &amp;lt;code&amp;gt;[[du]]&amp;lt;/code&amp;gt; results on human-readable file size of current working directory (non-recursively).&lt;br /&gt;
 $ du -hd1 ./ | sort -hk1&lt;br /&gt;
&lt;br /&gt;
Sort part of a checksum file while ignoring some initial lines (e.g. a checksum file generated by &amp;lt;code&amp;gt;sumdir&amp;lt;/code&amp;gt;). Sorts every line except for the first three lines which it leaves at the top; the output is written to &amp;lt;code&amp;gt;/tmp/0.txt&amp;lt;/code&amp;gt;. Uses the &amp;lt;code&amp;gt;-k2&amp;lt;/code&amp;gt; (i.e. &amp;quot;key 2&amp;quot;) option of &amp;lt;code&amp;gt;sort&amp;lt;/code&amp;gt; which says to sort by the file name, not the hash (hash is first whitespace-separated entry, file name is the second).&lt;br /&gt;
&lt;br /&gt;
 file=.SUMSHA256--20230126T050458+0000; ( cat &amp;quot;$file&amp;quot; | head -n3; cat &amp;quot;$file&amp;quot; | tail -n+4 | sort -k2; ) &amp;gt; /tmp/0.txt&lt;br /&gt;
&lt;br /&gt;
Sort on the third field of comma-delimited lines&lt;br /&gt;
 $ printf &amp;quot;1,foo,kobo\n2,bar,kaela\n3,baz,zeta\n&amp;quot; | sort -t&#039;,&#039; -k3&lt;br /&gt;
 2,bar,kaela&lt;br /&gt;
 1,foo,kobo&lt;br /&gt;
 3,baz,zeta&lt;br /&gt;
&lt;br /&gt;
Remove duplicate lines without sorted result (preserving first copied unique line). (see [https://stackoverflow.com/a/20639730/10850071 ref])&lt;br /&gt;
 $ myVar=&amp;quot;$( printf &amp;quot;gundam\ninuyasha\ngundam\nbleach\ngundam\nnaruto\ngundam\n&amp;quot; )&amp;quot;&lt;br /&gt;
 $ echo &amp;quot;$myVar&amp;quot; | cat -n | sort -uk2 | sort -n | cut -f2-&lt;br /&gt;
 gundam&lt;br /&gt;
 inuyasha&lt;br /&gt;
 bleach&lt;br /&gt;
 naruto&lt;br /&gt;
&lt;br /&gt;
: Preserving last unique copied line.&lt;br /&gt;
 echo &amp;quot;$myVar&amp;quot; | tac | cat -n | sort -uk2 | sort -n | cut -f2- | tac&lt;br /&gt;
 inuyasha&lt;br /&gt;
 bleach&lt;br /&gt;
 naruto&lt;br /&gt;
 gundam&lt;br /&gt;
&lt;br /&gt;
===[[stdbuf]]===&lt;br /&gt;
A [[GNU Coreutils]] program that controls how stdin, stdout, and error data is passed in and out of a program.&lt;br /&gt;
&lt;br /&gt;
Read input from &#039;&#039;stdin&#039;&#039; and pass through output to &#039;&#039;stdout&#039;&#039; without any buffering.&amp;lt;ref name=&amp;quot;se_20110619_stdbuf&amp;quot;&amp;gt;[[a3nm]]. ([[2011-06-19]]). “[https://unix.stackexchange.com/a/25378 Turn off buffering in pipe]”. &#039;&#039;Stack Exchange&#039;&#039;. Accessed [[2023-06-06]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ stdbuf -i0 -o0 -e0 command&lt;br /&gt;
&lt;br /&gt;
: Example: Continuously filtering [[journalctl]] output to capture &amp;lt;code&amp;gt;apache-access&amp;lt;/code&amp;gt; lines while discarding the first 7 space-delimited fields of each line. If &#039;&#039;stdbuf&#039;&#039; is not used in this type of scenario, [[tr]] and [[cut]] may fail to immediately display important lines as they arrive from &#039;&#039;journalctl&#039;&#039;, choosing to wait until a buffer is filled before displaying them (defeating the purpose of the &amp;lt;code&amp;gt;--follow&amp;lt;/code&amp;gt; option of &#039;&#039;journalctl&#039;&#039;).&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
journalctl --all --output=short-iso --since=-7d --follow |\&lt;br /&gt;
  grep --line-buffered -Eiv &amp;quot; 404 &amp;quot; |\&lt;br /&gt;
  grep --line-buffered &amp;quot;apache-access&amp;quot; |\&lt;br /&gt;
  stdbuf -i0 -o0 -e0 tr -s &#039; &#039; |\&lt;br /&gt;
  stdbuf -i0 -o0 -e0 cut -d&#039; &#039; -f8- -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[strace]]===&lt;br /&gt;
Read stderr of a backgrounded and disowned process with process ID &amp;lt;code&amp;gt;pid&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ strace -p &amp;quot;$pid&amp;quot; -e trace=write&lt;br /&gt;
&lt;br /&gt;
===su===&lt;br /&gt;
Open a shell as root.&lt;br /&gt;
 alice@host: sudo su -&lt;br /&gt;
 root@host: whoami&lt;br /&gt;
 root&lt;br /&gt;
&lt;br /&gt;
Open a &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; shell as another user, e.g. &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;.&lt;br /&gt;
 alice@host: whoami&lt;br /&gt;
 alice&lt;br /&gt;
 alice@host: sudo su - www-data -s /bin/bash&lt;br /&gt;
 [sudo] password for alice:&lt;br /&gt;
 www-data@host: whoami&lt;br /&gt;
 www-data&lt;br /&gt;
&lt;br /&gt;
===sumdir===&lt;br /&gt;
A script by [[Christopher Lovejoy]] (used with &amp;lt;code&amp;gt;checkdir&amp;lt;/code&amp;gt;). [https://github.com/monking/shell-utilities/blob/main/sumdir Source at GitHub].&lt;br /&gt;
&lt;br /&gt;
Create checksum of files in working directory recursively, excluding files with names: ending in &amp;lt;code&amp;gt;.asc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;.ots&amp;lt;/code&amp;gt; and files starting with &amp;lt;code&amp;gt;.SUM&amp;lt;/code&amp;gt;. Resulting file has pattern: &amp;lt;code&amp;gt;.SUM${digest_name}&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;.SUMB2--20230128T013153+0000&amp;lt;/code&amp;gt;).&lt;br /&gt;
 $ sumdir -a sha256 -r -x &amp;quot;*.asc&amp;quot; -x &amp;quot;*.ots&amp;quot; -x &amp;quot;.SUM*&amp;quot;&lt;br /&gt;
 $ sumdir -a b2 -r -x &amp;quot;*.asc&amp;quot; -x &amp;quot;*.ots&amp;quot; -x &amp;quot;.SUM*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===swapoff===&lt;br /&gt;
&#039;&#039;Possibly [[Ubuntu]]-specific&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Temporarily all swap file entries in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.{{bkc|[[2025-01-21]]: Generally, to permanently disable swap, comment out the relevant swap lines in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;. }}&lt;br /&gt;
 $ sudo swapoff -a&lt;br /&gt;
&lt;br /&gt;
===[[tail]]===&lt;br /&gt;
Get last 4 lines of a stdin steam.&lt;br /&gt;
 $ seq 1 10 | tail -n4&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
Get all lines, but start on line 4.&lt;br /&gt;
 $ seq 1 10 | tail -n+4&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
{{Anchor|tail-slice}}{{Anchor|tail-slice-lines}}Get lines 4 through 6.&amp;lt;ref name=&amp;quot;se_20131009_print-lines-tail-head&amp;quot;&amp;gt;[https://unix.stackexchange.com/users/22222/terdon terdon].  ([[2013-10-09]]).  “[https://unix.stackexchange.com/a/94320 Efficient way to print lines from a massive file using awk, sed, or something else?]”.  &#039;&#039;[[stackexchange.com]]&#039;&#039;.  Accessed [[2025-04-04]].  &amp;lt;/ref&amp;gt; Note: is more efficient than [[#sed|sed]] or [[#awk|awk]] when processing large files.&lt;br /&gt;
 $ seq 1 10 | tail -n+4 | head -n3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
: Get lines 4 through 6 via variables and Bash arithmetic.&lt;br /&gt;
 $ start=4; end=6; seq 1 10 | tail -n+${start} | head -n$((end - start + 1))&lt;br /&gt;
&lt;br /&gt;
{{Anchor|tail-slice-bytes}}Print 4th to 7th bytes of a seekable file. (see [[#head-slice-bytes|#head]] for non-seekable case)&lt;br /&gt;
 $ selStart=$((4-1)); selEnd=$((7-1)); selCount=$((selEnd-selStart+1));&lt;br /&gt;
 $ tail --bytes=+$((selStart+1)) -- foo.txt | head --bytes=$((selCount));  # GNU Coreutils 8.32&lt;br /&gt;
 $ tail -c +$((selStart+1)) -- foo.txt | head -c $((selCount));  # BSD/macOS&lt;br /&gt;
&lt;br /&gt;
===[[tar]]===&lt;br /&gt;
&#039;&#039;See [[File compression notes]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;some_dir.rar&amp;lt;/code&amp;gt; out of the contents of the directory &amp;lt;code&amp;gt;some_dir&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ tar -cf some_dir.rar some_dir&lt;br /&gt;
&lt;br /&gt;
Extract a compressed archive (e.g. &amp;lt;code&amp;gt;.tar.xz&amp;lt;/code&amp;gt;) in the current working directory.&lt;br /&gt;
 $ tar -xf archive.tar.xz&lt;br /&gt;
&lt;br /&gt;
: Extract to a different directory &amp;lt;code&amp;gt;some/path/&amp;lt;/code&amp;gt;. (The positioning of &amp;lt;code&amp;gt;-C&amp;lt;/code&amp;gt; is important.)&lt;br /&gt;
 $ tar -xf archive.tar.xz -C some/path/&lt;br /&gt;
&lt;br /&gt;
===tee===&lt;br /&gt;
Echo stdout to stderr ([https://stackoverflow.com/a/3142166/10850071 ref]):&lt;br /&gt;
 $ echo &amp;quot;This is standard error&amp;quot; | tee /dev/stderr | sed &#039;s/error/out/g&#039;&lt;br /&gt;
 This is standard error&lt;br /&gt;
 This is standard out&lt;br /&gt;
&lt;br /&gt;
===[[Tesseract (software)|tesseract]]===&lt;br /&gt;
Install.&lt;br /&gt;
 $ sudo apt install tesseract-ocr&lt;br /&gt;
 $ sudo apt install tesseract-ocr-eng  # english&lt;br /&gt;
 $ sudo apt install tesseract-ocr-osd  # orientation and script detection&lt;br /&gt;
&lt;br /&gt;
Perform English OCR on &amp;lt;code&amp;gt;input.jpg&amp;lt;/code&amp;gt; to create &amp;lt;code&amp;gt;output.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ tesseract input.jpg output -l eng&lt;br /&gt;
&lt;br /&gt;
Perform English OCR but with an image orientation check before.&lt;br /&gt;
 $ tesseract input.jpg output -l osd+eng&lt;br /&gt;
&lt;br /&gt;
Perform English OCR on all &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt; files in the working with 8 CPU cores using [[GNU Parallel]].&lt;br /&gt;
 $ find . -maxdepth 1 -type f -name &amp;quot;*.jpg&amp;quot; | parallel tesseract -j8 &#039;{}&#039; &#039;{.}&#039; -l eng&lt;br /&gt;
: &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to start its search in the working directory&lt;br /&gt;
: &amp;lt;code&amp;gt;-maxdepth 1&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to only search the immediate working directory and not to recursively traverse subdirectories.&lt;br /&gt;
: &amp;lt;code&amp;gt;-type f&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to search for files&lt;br /&gt;
: &amp;lt;code&amp;gt;-name &amp;quot;*.jpg&amp;quot;&amp;lt;/code&amp;gt; tells &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; to case-sensitive pattern-match files ending in &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;-j8&amp;lt;/code&amp;gt; specifies 8 CPU threads to be used. Omitting this option causes all available CPU cores to be used.&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{}&#039;&amp;lt;/code&amp;gt; represents a single line received from &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt;.&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;{.}&#039;&amp;lt;/code&amp;gt; represents the same line but with the extension (i.e. &amp;lt;code&amp;gt;.jpg&amp;lt;/code&amp;gt;) removed.&lt;br /&gt;
&lt;br /&gt;
===[[top (software)|top]]===&lt;br /&gt;
View process, sorted by CPU usage&lt;br /&gt;
 $ top&lt;br /&gt;
&lt;br /&gt;
Shortcuts&amp;lt;ref name=&amp;quot;transip_2024_linux-top-shortcuts&amp;quot;&amp;gt;“[https://www.transip.eu/knowledgebase/entry/1979-using-the-top-command-linux/ Using the top command in Linux]”.  (n.d.).  &#039;&#039;[[transip.eu]]&#039;&#039;.  Accessed [[2024-01-06]].  [https://web.archive.org/web/20231127225012/https://www.transip.eu/knowledgebase/entry/1979-using-the-top-command-linux/ Archived] from the original on [[2023-11-27]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
* Arrow keys &amp;amp; page up/down: Navigate through the displayed list in the Task area.&lt;br /&gt;
* &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;: Finish the top with the &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt;-key.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-p&amp;lt;/code&amp;gt;: Sort the processes by CPU usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-m&amp;lt;/code&amp;gt;: Sort the processes by memory (%MEM) usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-t&amp;lt;/code&amp;gt;: Sort the processes by running-time.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-n&amp;gt;&amp;lt;/code&amp;gt;: Sort the processes by process ID.&lt;br /&gt;
* &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;: Changes the display of the CPU usage in the summary section.&lt;br /&gt;
* &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;: Changes the display of memory usage in the summary section.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-r&amp;lt;/code&amp;gt;: Sort the processes in ascending order instead of descending (default).&lt;br /&gt;
* &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;: By pressing &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;, the &#039;Command&#039; column shows the entire path from which the processes were started.&lt;br /&gt;
* &amp;lt;code&amp;gt;S-v&amp;lt;/code&amp;gt;: Shows the parent / child process hierarchy.&lt;br /&gt;
* &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;: Prompts for a process ID and closes the specified process. By default, SIGTERM is used for a graceful shutdown of the process. For a forced shutdown, you use SIGKILL.&lt;br /&gt;
&lt;br /&gt;
Run top once, printing results to stdout:&lt;br /&gt;
 $ top -n1 -b&lt;br /&gt;
&lt;br /&gt;
===[[tr]]===&lt;br /&gt;
Remove &amp;lt;code&amp;gt;# comments&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;input.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ cat input.txt | sed -e &#039;s/[[:blank:]]*#.*//&#039; | tr -s &#039;\n&#039;;&lt;br /&gt;
&lt;br /&gt;
====Remove unwanted character sets====&lt;br /&gt;
Keep only printable characters and spaces from a string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
/bin/bash&lt;br /&gt;
name=&amp;quot;message:おはよう　ございます.&amp;quot;;&lt;br /&gt;
name_new=&amp;quot;$( printf &amp;quot;%s&amp;quot; &amp;quot;$name&amp;quot; | tr -dc &#039;[:graph:][:space:]&#039; )&amp;quot;;&lt;br /&gt;
printf &amp;quot;%s\n&amp;quot; &amp;quot;$name&amp;quot;;&lt;br /&gt;
printf &amp;quot;%s\n&amp;quot; &amp;quot;$name_new&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: This results in:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
message:おはよう　ございます.&lt;br /&gt;
message:.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[tree (command)]]===&lt;br /&gt;
Recursively list contents of current working directory.&lt;br /&gt;
 $ tree&lt;br /&gt;
&lt;br /&gt;
: List contents without colorized text.&lt;br /&gt;
 $ tree | ansi2txt&lt;br /&gt;
&lt;br /&gt;
===unar===&lt;br /&gt;
Install on a [[Debian]] system via [[apt]].&lt;br /&gt;
 $ sudo apt update &amp;amp;&amp;amp; sudo apt install unar&lt;br /&gt;
&lt;br /&gt;
Decompress a [[rar]] archive.&lt;br /&gt;
 $ unar archive.rar&lt;br /&gt;
&lt;br /&gt;
===unzip===&lt;br /&gt;
&#039;&#039;For &amp;lt;code&amp;gt;.rar&amp;lt;/code&amp;gt; files, see [[#unar]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unzip to directory &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;&lt;br /&gt;
 $ mkdir foo&lt;br /&gt;
 $ unzip -d foo archive.zip&lt;br /&gt;
&lt;br /&gt;
Unzip archives containing file names encoded in non-English encodings:&lt;br /&gt;
: [[Shift JIS]] [[Japanese]] encoding.&amp;lt;ref name=&amp;quot;askubuntu_20170711_unzip-shiftjis&amp;quot;&amp;gt;[https://askubuntu.com/users/4066/nicolas-raoul Nicolas Raoul].  ([[2017-07-11]]).  “[https://askubuntu.com/a/935023 How to unzip a Japanese ZIP file, and avoid mojibake/garbled characters]”.  &#039;&#039;[[askubuntu.com]]&#039;&#039;.  Accessed [[2024-04-12]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ unzip -O shift-jis archive.zip&lt;br /&gt;
: [[Simplified Chinese characters]] encoding.&lt;br /&gt;
 $ unzip -O gb18030 archive.zip  # [[GB 18030]] is a superset of [[GBK]]. Try this first.&lt;br /&gt;
 $ unzip -O gbk archive.zip      # [[GBK (character encoding)|GBK]] an extension of [[GB 2312]].&lt;br /&gt;
 $ unzip -O gb2312 archive.zip   # [[GB 2312]] deprecated in 2017&lt;br /&gt;
: [[Big5]] [[Traditional Chinese characters]] encoding.&lt;br /&gt;
 $ unzip -O big5 archive.zip&lt;br /&gt;
&lt;br /&gt;
===[[veracrypt]]===&lt;br /&gt;
Mount a volume.&lt;br /&gt;
 $ veracrypt volume.hc&lt;br /&gt;
&lt;br /&gt;
Unmount all volumes.&lt;br /&gt;
 $ veracrypt -d&lt;br /&gt;
: If you get an error message resembling &amp;lt;code&amp;gt;Error: umount: /media/veracrypt1: target is busy&amp;lt;/code&amp;gt;, then identify the offending process with [[lsof]]&amp;lt;ref name=&amp;quot;so_20111024_unmountbusydev&amp;quot;&amp;gt;[[Frank Tudor|Tudor, Frank]].  ([[2011-10-24]]).  “[https://stackoverflow.com/a/7878763 How to unmount a busy device [closed]]”.  &#039;&#039;[[stackoverflow.com]]&#039;&#039;.  Accessed [[2023-07-25]].  [https://web.archive.org/web/20230620181852/https://stackoverflow.com/questions/7878707/how-to-unmount-a-busy-device/7878763#7878763 Archived] from the original on [[2023-06-20]].  &amp;lt;/ref&amp;gt;:&lt;br /&gt;
 $ lsof | grep &#039;/media/veracrypt1&#039;&lt;br /&gt;
&lt;br /&gt;
Unmount a specific volume.&lt;br /&gt;
 $ veracrypt -d volume.hc&lt;br /&gt;
&lt;br /&gt;
Create a volume.&lt;br /&gt;
 $ veracrypt -t -c&lt;br /&gt;
&lt;br /&gt;
===[[wc]]===&lt;br /&gt;
Word count. Part of GNU Coreutils 8.32.&lt;br /&gt;
&lt;br /&gt;
Count bytes in a file named &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ wc -c foo.txt&lt;br /&gt;
 20087&lt;br /&gt;
&lt;br /&gt;
Count the bytes in the file name &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt; (with an off-by-one error due to Bash adding a trailing newline character).&lt;br /&gt;
 $ wc -c &amp;lt;&amp;lt;&amp;lt; &amp;quot;foo.txt&amp;quot;&lt;br /&gt;
 8&lt;br /&gt;
&lt;br /&gt;
Count the bytes in the file name &amp;lt;code&amp;gt;foo.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ filename=&amp;quot;foo.txt&amp;quot;; printf &amp;quot;%s&amp;quot; &amp;quot;$filename&amp;quot; | wc -c&lt;br /&gt;
 7&lt;br /&gt;
&lt;br /&gt;
===[[wondershaper]]===&lt;br /&gt;
Limit bandwidth of network interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;{{bk}}: [[2024-01-12]]: Network interfaces and [[DHCP]]-assigned [[IP address]]es can be listed via &amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt;.&amp;lt;/ref&amp;gt; to 5000kbps download and 1000kbps upload.&lt;br /&gt;
 $ wondershaper eth0 5000 1000&lt;br /&gt;
&lt;br /&gt;
Clear [[wondershaper]] limits.&lt;br /&gt;
 $ wondershaper clear&lt;br /&gt;
&lt;br /&gt;
===[[yt-dlp]]===&lt;br /&gt;
&#039;&#039;For all options, see [[yt-dlp]] GitHub page [https://github.com/yt-dlp/yt-dlp here].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See example wrapper script [https://gitlab.com/baltakatei/baltakatei-exdev/-/blob/107b9c5341a52d03350d698b5ec42e26d810a93c/user/bkytpldl-generic here (&amp;lt;code&amp;gt;bkytpldl-generic&amp;lt;/code&amp;gt; v4.1.1)].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay between downloads&lt;br /&gt;
 $ yt-dlp --sleep-requests 2&lt;br /&gt;
&lt;br /&gt;
Remember downloaded videos to avoid redownload attempts.&lt;br /&gt;
 $ yt-dlp --download-archive some/path/history.txt &amp;quot;$URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Randomize order in which playlist items are downloaded.&lt;br /&gt;
 $ yt-dlp --playlist-random &amp;quot;$URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Handle &amp;lt;code&amp;gt;File name too long&amp;lt;/code&amp;gt; error by limiting long fields by byte count.&amp;lt;ref name=&amp;quot;ytdlp_2021_long-filename&amp;quot;&amp;gt;[[tylerszabo]]. ([[2021-10-01]]). “[https://github.com/yt-dlp/yt-dlp/issues/1136  [Feature request] Handle Long filenames in default template and temporary files #1136]”.  &#039;&#039;[[github.com]]&#039;&#039;, [[yt-dlp]].  Accessed [[2024-07-25]].  “&amp;lt;code&amp;gt;$ yt-dlp -o &#039;%(title).200B.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;&amp;lt;/code&amp;gt;”.  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ yt-dlp -o &#039;%(title).140B.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;  # limits title to 140 bytes&lt;br /&gt;
 $ yt-dlp -o &#039;%(title)s.%(ext)s&#039; &#039;&amp;lt;url&amp;gt;&#039;      # may fail if title too long&lt;br /&gt;
&lt;br /&gt;
Download lowest quality.&amp;lt;ref name=&amp;quot;su_20210806_ytdlp-lowest-quality&amp;quot;&amp;gt;[https://superuser.com/users/1052727/sherman Sherman].  ([[2021-08-06]]).  “[https://superuser.com/a/1667932/1142336 Download the lowest quality video with youtube-dl]”.  &#039;&#039;[[superuser.com]]&#039;&#039;.  Accessed [[2024-02-10]].  &amp;lt;/ref&amp;gt;&lt;br /&gt;
 $ yt-dlp -S &#039;+size,+br&#039;&lt;br /&gt;
&lt;br /&gt;
Write automatic subtitles of a [[YouTube]] video to a &amp;lt;code&amp;gt;.vtt&amp;lt;/code&amp;gt; file:&lt;br /&gt;
 $ yt-dlp --write-subs --write-auto-subs https://www.youtube.com/watch?v=bbkUn0o3L1Y&lt;br /&gt;
&lt;br /&gt;
: Parse such a &amp;lt;code&amp;gt;.vtt&amp;lt;/code&amp;gt; file in order to extract the text (reading every 8th line with an offset)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;clear; offset=1; cycle=8; n=0; {&lt;br /&gt;
  while read -r line; do&lt;br /&gt;
    if [[ ! $((n % cycle)) -eq &amp;quot;$offset&amp;quot; ]]; then&lt;br /&gt;
      ((n++)); continue; fi;&lt;br /&gt;
    printf &amp;quot;%s\n&amp;quot; &amp;quot;$line&amp;quot;;&lt;br /&gt;
    ((n++));&lt;br /&gt;
  done &amp;amp;lt; Unicode\ and\ Byte\ Order\ \[bbkUn0o3L1Y\].en.vtt;&lt;br /&gt;
  echo &amp;quot;STATUS:Done.&amp;quot; 1&amp;gt;&amp;amp;2;&lt;br /&gt;
} | grep -v &amp;quot;^$&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[xargs]]===&lt;br /&gt;
Break up many lines into groups to avoid [[xargs]] limits on argument counts and maximum command lengths.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
bite=100;  # group size  ADJUST ME&lt;br /&gt;
n=1;  # initialize loop counter&lt;br /&gt;
declare -a buffer;  # initialize line group&lt;br /&gt;
&lt;br /&gt;
# Populate and process full groups.&lt;br /&gt;
while read -r line; do&lt;br /&gt;
  buffer+=(&amp;quot;$line&amp;quot;);&lt;br /&gt;
  if [[ $(( n % bite )) -eq 0 ]]; then&lt;br /&gt;
    printf &amp;quot;%s\n&amp;quot; &amp;quot;${buffer[@]}&amp;quot; | xargs echo;  # ADJUST ME  replace &#039;echo&#039; with your command  &lt;br /&gt;
    unset buffer;&lt;br /&gt;
    sleep 1;  # throttle&lt;br /&gt;
  fi;&lt;br /&gt;
  ((n++));&lt;br /&gt;
done &amp;lt; &amp;lt;(seq 1 1000);  # ADJUST ME  replace with command that generates many lines  &lt;br /&gt;
&lt;br /&gt;
# Handle final partially filled group.&lt;br /&gt;
if [[ &amp;quot;${#buffer[@]}&amp;quot; -gt 0 ]]; then&lt;br /&gt;
  printf &amp;quot;%s\n&amp;quot; &amp;quot;${buffer[@]}&amp;quot; | xargs echo;  # ADJUST ME  replace &#039;echo&#039; with your command&lt;br /&gt;
fi;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert several lines of [[stdin]] into words. This may be useful if a command needs to perform an operation on all items in a long [[newline-delimited]] [[list]] as [[argument]] [[parameters]] instead of [[standard input]]. The following expressions are equivalent calls of [[ls]] to list the files &amp;lt;code&amp;gt;foo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;baz&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $ printf &amp;quot;foo\nbar\nbaz\n&amp;quot; | xargs -d &#039;\n&#039; ls -alh;&lt;br /&gt;
 $ ls -alh foo bar baz;&lt;br /&gt;
: Note: &amp;lt;code&amp;gt;-d &#039;\n&#039;&amp;lt;/code&amp;gt; requires that only [[newlines]] are used to separate (i.e. [[delimiter|delimit]]) arguments. The &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; option is necessary in newline-delimited lists because &amp;lt;code&amp;gt;xargs&amp;lt;/code&amp;gt; will split lines on [[whitespace characters]] such as the [[space character]]. For example, &amp;lt;code&amp;gt;printf &amp;quot;1 qux\n2 quux\n3 corge\n&amp;quot; | xargs -d &#039;\n&#039; ls -alh;&amp;lt;/code&amp;gt; will not apply &amp;lt;code&amp;gt;ls -alh&amp;lt;/code&amp;gt; to the three files &amp;lt;code&amp;gt;1 qux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2 quux&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;3 corge&amp;lt;/code&amp;gt;, but instead will erroneously use six other files &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;qux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;quux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;corge&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===[[zip]]===&lt;br /&gt;
Compress a directory &amp;lt;code&amp;gt;my_dir&amp;lt;/code&amp;gt; into a zip archive &amp;lt;code&amp;gt;my_dir.zip&amp;lt;/code&amp;gt;.&lt;br /&gt;
 $ dir_in=./my_dir; zip_out=&amp;quot;${dir_in}.zip&amp;quot;; zip -r &amp;quot;$zip_out&amp;quot; &amp;quot;$dir_in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{refsec}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Command line]]&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Supreme_Court_of_the_United_States&amp;diff=198198</id>
		<title>Supreme Court of the United States</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Supreme_Court_of_the_United_States&amp;diff=198198"/>
		<updated>2026-04-26T19:04:55Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
=== Current Justices ===&lt;br /&gt;
* Chief Justice John Roberts (since 2005)&lt;br /&gt;
* Associate Justice [[Clarence Thomas]] (since 1991)&lt;br /&gt;
* Associate Justice [[Samuel Alito]] (since 2006)&lt;br /&gt;
* Associate Justice [[Sonia Sotomayor]] (since 2009)&lt;br /&gt;
* Associate Justice [[Elena Kagan]] (since 2010)&lt;br /&gt;
* Associate Justice [[Neil Gorsuch]] (since 2017)&lt;br /&gt;
* Associate Justice [[Brett Kavanaugh]] (since 2018)&lt;br /&gt;
* Associate Justice [[Amy Coney Barrett]] (since 2020)&lt;br /&gt;
* Associate Justice [[Ketanji Brown Jackson]] (since 2022)&lt;br /&gt;
&lt;br /&gt;
=== Former Justices ===&lt;br /&gt;
* John Jay (1789–1795)&lt;br /&gt;
* John Rutledge (1795)&lt;br /&gt;
* Oliver Ellsworth (1796–1800)&lt;br /&gt;
* John Marshall (1801–1835)&lt;br /&gt;
* Roger B. Taney (1836–1864)&lt;br /&gt;
* Salmon P. Chase (1864–1873)&lt;br /&gt;
* Morrison Waite (1874–1888)&lt;br /&gt;
* Melville Fuller (1888–1910)&lt;br /&gt;
* Edward Douglass White (1910–1921)&lt;br /&gt;
* William Howard Taft (1921–1930)&lt;br /&gt;
* Charles Evans Hughes (1930–1941)&lt;br /&gt;
* Harlan F. Stone (1941–1946)&lt;br /&gt;
* Fred M. Vinson (1946–1953)&lt;br /&gt;
* Earl Warren (1953–1969)&lt;br /&gt;
* Warren E. Burger (1969–1986)&lt;br /&gt;
* William Rehnquist (1986–2005)&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2024]]: [[Snyder v. United States]]: Ruled that [[bribery]] is acceptable if the gratuity is paid after the otherwise corrupt act.&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references group=fn /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Comments==&lt;br /&gt;
&amp;lt;references group=cmt /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Supreme_Court_of_the_United_States&amp;diff=198197</id>
		<title>Supreme Court of the United States</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Supreme_Court_of_the_United_States&amp;diff=198197"/>
		<updated>2026-04-26T19:04:35Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot;     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}  ==Stats==  === Current Justices === * Chief Justice John Roberts (since 2005) * Ass...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
    {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
=== Current Justices ===&lt;br /&gt;
* Chief Justice John Roberts (since 2005)&lt;br /&gt;
* Associate Justice [[Clarence Thomas]] (since 1991)&lt;br /&gt;
* Associate Justice [[Samuel Alito]] (since 2006)&lt;br /&gt;
* Associate Justice [[Sonia Sotomayor]] (since 2009)&lt;br /&gt;
* Associate Justice [[Elena Kagan]] (since 2010)&lt;br /&gt;
* Associate Justice [[Neil Gorsuch]] (since 2017)&lt;br /&gt;
* Associate Justice [[Brett Kavanaugh]] (since 2018)&lt;br /&gt;
* Associate Justice [[Amy Coney Barrett]] (since 2020)&lt;br /&gt;
* Associate Justice [[Ketanji Brown Jackson]] (since 2022)&lt;br /&gt;
&lt;br /&gt;
=== Former Justices ===&lt;br /&gt;
* John Jay (1789–1795)&lt;br /&gt;
* John Rutledge (1795)&lt;br /&gt;
* Oliver Ellsworth (1796–1800)&lt;br /&gt;
* John Marshall (1801–1835)&lt;br /&gt;
* Roger B. Taney (1836–1864)&lt;br /&gt;
* Salmon P. Chase (1864–1873)&lt;br /&gt;
* Morrison Waite (1874–1888)&lt;br /&gt;
* Melville Fuller (1888–1910)&lt;br /&gt;
* Edward Douglass White (1910–1921)&lt;br /&gt;
* William Howard Taft (1921–1930)&lt;br /&gt;
* Charles Evans Hughes (1930–1941)&lt;br /&gt;
* Harlan F. Stone (1941–1946)&lt;br /&gt;
* Fred M. Vinson (1946–1953)&lt;br /&gt;
* Earl Warren (1953–1969)&lt;br /&gt;
* Warren E. Burger (1969–1986)&lt;br /&gt;
* William Rehnquist (1986–2005)&lt;br /&gt;
* [List continues for all former justices]&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2024]]: [[Snyder v. United States]]: Ruled that [[bribery]] is acceptable if the gratuity is paid after the otherwise corrupt act.&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Footnotes==&lt;br /&gt;
&amp;lt;references group=fn /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Comments==&lt;br /&gt;
&amp;lt;references group=cmt /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
	<entry>
		<id>https://reboil.com/mediawiki/index.php?title=Bribery&amp;diff=198196</id>
		<title>Bribery</title>
		<link rel="alternate" type="text/html" href="https://reboil.com/mediawiki/index.php?title=Bribery&amp;diff=198196"/>
		<updated>2026-04-26T19:01:25Z</updated>

		<summary type="html">&lt;p&gt;Baltakatei: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Bribery&amp;#039;&amp;#039;&amp;#039; is the act of paying or compensating an official in order to perform dishonest actions they otherwise would not do, especially to favor oneʼs self.     {{#ifex...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Bribery&#039;&#039;&#039; is the act of paying or compensating an official in order to perform dishonest actions they otherwise would not do, especially to favor oneʼs self.     {{#ifexist: {{FULLPAGENAME}}/prv |&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;{{#lst:{{PAGENAME}}/prv|lede-prv}} | }}&lt;br /&gt;
&lt;br /&gt;
==Stats==&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[2024]]: [[Snyder v. United States]] was a [[United States Supreme Court]] case in which the Court held 18 U.S.C. § 666 prohibits bribes to state and local officials but does not make it a crime for those officials to accept gratuities for their past acts. The decision effectively nullified anti-bribery laws in the [[US]].&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|private}} | }}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:{{PAGENAME}}]]&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |* [[{{FULLPAGENAME}}/prv]] | }}&lt;br /&gt;
{{#ifexist: {{FULLPAGENAME}}/prv |{{#lsth:{{PAGENAME}}/prv|See also private}} | }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{bk wikis}}&lt;br /&gt;
&lt;br /&gt;
{{Refsec}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of Page --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Baltakatei</name></author>
	</entry>
</feed>