typescript-virtual-container 1.4.9 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/.vscode/settings.json +1 -1
  2. package/README.md +141 -89
  3. package/builds/fortune-nyx-v1.5.1-directbash-k6.1.0.mjs +1768 -0
  4. package/builds/fortune-nyx-v1.5.1-ssh-nosftp.js +1768 -0
  5. package/builds/fortune-nyx-v1.5.1-ssh.cjs +1769 -0
  6. package/bun.lock +3 -3
  7. package/dist/SSHMimic/exec.js +2 -2
  8. package/dist/SSHMimic/exec.js.map +1 -1
  9. package/dist/SSHMimic/index.d.ts.map +1 -1
  10. package/dist/SSHMimic/index.js +2 -1
  11. package/dist/SSHMimic/index.js.map +1 -1
  12. package/dist/SSHMimic/sftp.d.ts.map +1 -1
  13. package/dist/SSHMimic/sftp.js +4 -3
  14. package/dist/SSHMimic/sftp.js.map +1 -1
  15. package/dist/VirtualFileSystem/index.d.ts +14 -0
  16. package/dist/VirtualFileSystem/index.d.ts.map +1 -1
  17. package/dist/VirtualFileSystem/index.js +51 -3
  18. package/dist/VirtualFileSystem/index.js.map +1 -1
  19. package/dist/VirtualFileSystem/journal.d.ts.map +1 -1
  20. package/dist/VirtualFileSystem/journal.js +13 -5
  21. package/dist/VirtualFileSystem/journal.js.map +1 -1
  22. package/dist/VirtualShell/shell.js +12 -12
  23. package/dist/VirtualShell/shell.js.map +1 -1
  24. package/dist/VirtualUserManager/index.js +8 -11
  25. package/dist/VirtualUserManager/index.js.map +1 -1
  26. package/dist/commands/apt.js +3 -3
  27. package/dist/commands/apt.js.map +1 -1
  28. package/dist/commands/cd.d.ts.map +1 -1
  29. package/dist/commands/cd.js +2 -1
  30. package/dist/commands/cd.js.map +1 -1
  31. package/dist/commands/helpers.d.ts +1 -1
  32. package/dist/commands/helpers.d.ts.map +1 -1
  33. package/dist/commands/helpers.js +3 -2
  34. package/dist/commands/helpers.js.map +1 -1
  35. package/dist/commands/index.d.ts +1 -1
  36. package/dist/commands/index.d.ts.map +1 -1
  37. package/dist/commands/index.js +1 -1
  38. package/dist/commands/index.js.map +1 -1
  39. package/dist/commands/lsb-release.js +1 -1
  40. package/dist/commands/lsb-release.js.map +1 -1
  41. package/dist/commands/runtime.d.ts +2 -0
  42. package/dist/commands/runtime.d.ts.map +1 -1
  43. package/dist/commands/runtime.js +5 -1
  44. package/dist/commands/runtime.js.map +1 -1
  45. package/dist/modules/linuxRootfs.d.ts +9 -5
  46. package/dist/modules/linuxRootfs.d.ts.map +1 -1
  47. package/dist/modules/linuxRootfs.js +1079 -148
  48. package/dist/modules/linuxRootfs.js.map +1 -1
  49. package/dist/self-standalone.js +22 -12
  50. package/dist/self-standalone.js.map +1 -1
  51. package/docs/assets/hierarchy.js +1 -1
  52. package/docs/classes/HoneyPot.html +9 -9
  53. package/docs/classes/IdleManager.html +8 -8
  54. package/docs/classes/SshClient.html +18 -18
  55. package/docs/classes/VirtualFileSystem.html +34 -34
  56. package/docs/classes/VirtualPackageManager.html +13 -13
  57. package/docs/classes/VirtualSftpServer.html +3 -3
  58. package/docs/classes/VirtualShell.html +28 -28
  59. package/docs/classes/VirtualSshServer.html +5 -5
  60. package/docs/classes/VirtualUserManager.html +27 -27
  61. package/docs/functions/assertDiff.html +2 -2
  62. package/docs/functions/diffSnapshots.html +2 -2
  63. package/docs/functions/formatDiff.html +2 -2
  64. package/docs/functions/getArg.html +2 -2
  65. package/docs/functions/getFlag.html +2 -2
  66. package/docs/functions/ifFlag.html +2 -2
  67. package/docs/hierarchy.html +1 -1
  68. package/docs/index.html +37 -31
  69. package/docs/interfaces/AuditLogEntry.html +3 -3
  70. package/docs/interfaces/CommandContext.html +12 -12
  71. package/docs/interfaces/CommandResult.html +13 -13
  72. package/docs/interfaces/ExecStream.html +6 -6
  73. package/docs/interfaces/HoneyPotStats.html +3 -3
  74. package/docs/interfaces/IdleManagerOptions.html +3 -3
  75. package/docs/interfaces/InstalledPackage.html +11 -11
  76. package/docs/interfaces/NanoEditorSession.html +5 -5
  77. package/docs/interfaces/PackageDefinition.html +14 -14
  78. package/docs/interfaces/PackageFile.html +5 -5
  79. package/docs/interfaces/PasswordChallenge.html +9 -9
  80. package/docs/interfaces/RemoveOptions.html +3 -3
  81. package/docs/interfaces/ShellEnv.html +4 -4
  82. package/docs/interfaces/ShellModule.html +8 -8
  83. package/docs/interfaces/ShellProperties.html +5 -5
  84. package/docs/interfaces/ShellStream.html +7 -7
  85. package/docs/interfaces/SudoChallenge.html +9 -9
  86. package/docs/interfaces/VfsBaseNode.html +7 -7
  87. package/docs/interfaces/VfsDiff.html +6 -6
  88. package/docs/interfaces/VfsDiffEntry.html +4 -4
  89. package/docs/interfaces/VfsDiffModified.html +6 -6
  90. package/docs/interfaces/VfsDirectoryNode.html +8 -8
  91. package/docs/interfaces/VfsFileNode.html +9 -9
  92. package/docs/interfaces/VfsOptions.html +6 -6
  93. package/docs/interfaces/VfsSnapshot.html +3 -3
  94. package/docs/interfaces/VfsSnapshotBaseNode.html +4 -4
  95. package/docs/interfaces/VfsSnapshotDirectoryNode.html +5 -5
  96. package/docs/interfaces/VfsSnapshotFileNode.html +6 -6
  97. package/docs/interfaces/VirtualActiveSession.html +7 -7
  98. package/docs/interfaces/VirtualSftpServerOptions.html +3 -3
  99. package/docs/interfaces/VirtualShellVfsLike.html +3 -3
  100. package/docs/interfaces/VirtualShellVfsOptions.html +3 -3
  101. package/docs/interfaces/WriteFileOptions.html +4 -4
  102. package/docs/modules.html +1 -1
  103. package/docs/types/ArgParseOptions.html +3 -3
  104. package/docs/types/CommandMode.html +2 -2
  105. package/docs/types/CommandOutcome.html +2 -2
  106. package/docs/types/IdleState.html +1 -1
  107. package/docs/types/VfsNodeStats.html +2 -2
  108. package/docs/types/VfsNodeType.html +2 -2
  109. package/docs/types/VfsPersistenceMode.html +2 -2
  110. package/docs/types/VfsSnapshotNode.html +2 -2
  111. package/package.json +6 -5
  112. package/scripts/build-all.mjs +198 -0
  113. package/scripts/build-names.mjs +44 -0
  114. package/src/SSHMimic/exec.ts +2 -2
  115. package/src/SSHMimic/index.ts +2 -1
  116. package/src/SSHMimic/sftp.ts +4 -3
  117. package/src/VirtualFileSystem/index.ts +46 -3
  118. package/src/VirtualFileSystem/journal.ts +12 -5
  119. package/src/VirtualShell/shell.ts +12 -12
  120. package/src/VirtualUserManager/index.ts +11 -11
  121. package/src/commands/apt.ts +3 -3
  122. package/src/commands/cd.ts +2 -1
  123. package/src/commands/helpers.ts +3 -2
  124. package/src/commands/index.ts +1 -1
  125. package/src/commands/lsb-release.ts +1 -1
  126. package/src/commands/runtime.ts +6 -1
  127. package/src/modules/linuxRootfs.ts +1293 -207
  128. package/src/self-standalone.ts +26 -12
  129. package/tests/new-features.test.ts +2 -2
  130. package/tests/sftp.test.ts +13 -13
  131. package/builds/self-standalone.js +0 -1299
  132. package/builds/standalone-wo-sftp.js +0 -1300
  133. package/builds/standalone.cjs +0 -1301
  134. /package/builds/{web-full-api.min.js → fortune-nyx-v1.5.1-web-full.min.js} +0 -0
  135. /package/builds/{web.min.js → fortune-nyx-v1.5.1-web.min.js} +0 -0
package/docs/index.html CHANGED
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>typescript-virtual-container - v1.4.9</title><meta name="description" content="Documentation for typescript-virtual-container"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">typescript-virtual-container - v1.4.9</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>typescript-virtual-container - v1.4.9</h1></div><div class="tsd-panel tsd-typography"><h1 id="_" class="tsd-anchor-link"><code>typescript-virtual-container</code><a href="#_" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>typescript-virtual-container - v1.5.1</title><meta name="description" content="Documentation for typescript-virtual-container"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">typescript-virtual-container - v1.5.1</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>typescript-virtual-container - v1.5.1</h1></div><div class="tsd-panel tsd-typography"><h1 id="_" class="tsd-anchor-link"><code>typescript-virtual-container</code><a href="#_" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1>
2
2
  <blockquote>
3
3
  <p>A complete virtual Linux environment in pure TypeScript — runs as an SSH/SFTP server, a browser-based web shell, or a standalone CLI. Ships with a realistic Linux rootfs, a virtual package manager, a full shell interpreter, and a typed programmatic API for testing, automation, honeypots, and embedded shell experiences.</p>
4
4
  </blockquote>
@@ -72,16 +72,20 @@
72
72
  </tr>
73
73
  <tr>
74
74
  <td><strong>Web shell</strong></td>
75
- <td><code>builds/web.min.js</code> / <code>builds/web-full-api.min.js</code> (ESM)</td>
76
- <td>Embedded terminals, interactive tutorials, browser demos</td>
75
+ <td><!-- BUILD:web --></td>
76
+ <td></td>
77
77
  </tr>
78
78
  <tr>
79
- <td><strong>Standalone CLI</strong></td>
80
- <td><code>builds/self-standalone.js</code> (single file)</td>
81
- <td>Local shell, one-liner demos, no install required</td>
79
+ <td><code>builds/fortune-nyx-v1.5.1-web.min.js</code> / <code>builds/fortune-nyx-v1.5.1-web-full.min.js</code></td>
80
+ <td></td>
81
+ <td></td>
82
82
  </tr>
83
83
  </tbody>
84
84
  </table>
85
+ <!-- /BUILD:web --> (ESM) | Embedded terminals, interactive tutorials, browser demos |
86
+ <p>| <strong>Standalone CLI</strong> | <!-- BUILD:selfStandalone -->
87
+ <code>builds/fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</code></p>
88
+ <!-- /BUILD:selfStandalone --> (single file) | Local shell, one-liner demos, no install required |
85
89
  <p>All three modes share the same core: a pure in-memory VFS, a real shell interpreter, a virtual package manager, and a typed programmatic API.</p>
86
90
  <hr>
87
91
  <h2 id="get-started" class="tsd-anchor-link">Get Started<a href="#get-started" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -90,16 +94,18 @@
90
94
  </code><button type="button">Copy</button></pre>
91
95
 
92
96
  <h3 id="try-instantly-zero-install" class="tsd-anchor-link">Try instantly (zero install)<a href="#try-instantly-zero-install" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
93
- <pre><code class="bash"><span class="hl-3"># Interactive local shell — persists VFS in .vfs/ in the current directory</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/self-standalone.js</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">self-standalone.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">self-standalone.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">self-standalone.js</span><br/><br/><span class="hl-3"># SSH server (connect with any SSH client on port 2222)</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/standalone.js</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">standalone.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">standalone.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">standalone.js</span><br/><br/><span class="hl-3"># SSH server without SFTP (lighter build)</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/standalone-wo-sftp.js</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">standalone.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">standalone.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">standalone.js</span>
97
+ <pre><code class="bash"><span class="hl-1">&lt;!</span><span class="hl-0">--</span><span class="hl-1"> </span><span class="hl-2">BUILD:curl-start</span><span class="hl-1"> </span><span class="hl-4">--</span><span class="hl-1">&gt;</span><br/><span class="hl-3"># Interactive local shell — persists VFS in .vfs/ in the current directory</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.0-directbash-k6.1.0.mjs</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-directbash.mjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-directbash.mjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-directbash.mjs</span><br/><br/><span class="hl-3"># SSH server (connect with any SSH client on port 2222)</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.0-ssh.cjs</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh.cjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh.cjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh.cjs</span><br/><br/><span class="hl-3"># SSH server without SFTP (lighter build)</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.0-ssh-nosftp.js</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh-nosftp.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh-nosftp.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh-nosftp.js</span><br/><span class="hl-1">&lt;!</span><span class="hl-0">--</span><span class="hl-1"> </span><span class="hl-2">BUILD:curl-end</span><span class="hl-1"> </span><span class="hl-4">--</span><span class="hl-1">&gt;</span>
94
98
  </code><button type="button">Copy</button></pre>
95
99
 
96
100
  <div class="tsd-alert tsd-alert-note"><div class="tsd-alert-title"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><use href="assets/icons.svg#icon-alertNote"></use></svg><span>Note</span></div><p>
97
101
  The standalone builds are intended for quick demos and testing. For production use, it's recommended to install the package and import the relevant classes directly in your codebase for better performance, stability, and security.</p>
98
102
  </div>
99
- <p><strong><code>self-standalone.js</code> options:</strong></p>
100
- <pre><code class="bash"><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">self-standalone.js</span><span class="hl-1"> </span><span class="hl-3"># boot as root</span><br/><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">self-standalone.js</span><span class="hl-1"> </span><span class="hl-4">--user</span><span class="hl-1"> </span><span class="hl-2">alice</span><span class="hl-1"> </span><span class="hl-3"># boot as alice (prompts for password if set)</span><br/><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">self-standalone.js</span><span class="hl-1"> </span><span class="hl-4">--user=alice</span><span class="hl-1"> </span><span class="hl-3"># same, inline form</span><br/><span class="hl-5">SSH_MIMIC_HOSTNAME</span><span class="hl-1">=</span><span class="hl-2">my-box</span><span class="hl-1"> </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">self-standalone.js</span><span class="hl-1"> </span><span class="hl-3"># custom hostname</span>
103
+ <!-- BUILD:selfStandalone-options -->
104
+ <p><strong><code>fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</code> options:</strong></p>
105
+ <pre><code class="bash"><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</span><span class="hl-1"> </span><span class="hl-3"># boot as root</span><br/><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</span><span class="hl-1"> </span><span class="hl-4">--user</span><span class="hl-1"> </span><span class="hl-2">alice</span><span class="hl-1"> </span><span class="hl-3"># boot as alice (prompts for password if set)</span><br/><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</span><span class="hl-1"> </span><span class="hl-4">--user=alice</span><span class="hl-1"> </span><span class="hl-3"># same, inline form</span><br/><span class="hl-5">SSH_MIMIC_HOSTNAME</span><span class="hl-1">=</span><span class="hl-2">my-box</span><span class="hl-1"> </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</span><span class="hl-1"> </span><span class="hl-3"># custom hostname</span>
101
106
  </code><button type="button">Copy</button></pre>
102
107
 
108
+ <!-- /BUILD:selfStandalone-options -->
103
109
  <p>The VFS is persisted automatically to <code>.vfs/vfs-snapshot.vfsb</code> in the current directory — state survives between runs. Delete <code>.vfs/</code> to start fresh.</p>
104
110
  <p>The shell shows a login banner and <code>Last login:</code> timestamp on each start.</p>
105
111
  <h3 id="ssh-server" class="tsd-anchor-link">SSH server<a href="#ssh-server" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
@@ -117,33 +123,25 @@ The standalone builds are intended for quick demos and testing. For production u
117
123
  <th>Use case</th>
118
124
  </tr>
119
125
  </thead>
120
- <tbody>
121
- <tr>
122
- <td><code>builds/web.min.js</code></td>
123
- <td>ESM</td>
124
- <td><code>createWebShell()</code></td>
125
- <td>Embedded terminals, modern bundlers</td>
126
- </tr>
127
- <tr>
128
- <td><code>builds/web-full-api.min.js</code></td>
129
- <td>ESM</td>
130
- <td><code>createVirtualShellShim()</code></td>
131
- <td>Full <code>VirtualShell</code>-like API in the browser</td>
132
- </tr>
133
- </tbody>
134
126
  </table>
127
+ <!-- BUILD:web-table -->
128
+ <p>| <code>builds/fortune-nyx-v1.5.1-web.min.js</code> | ESM | <code>createWebShell()</code> | Embedded terminals, modern bundlers |
129
+ | <code>builds/fortune-nyx-v1.5.1-web-full.min.js</code> | ESM | <code>createVirtualShellShim()</code> | Full <code>VirtualShell</code>-like API in the browser |</p>
130
+ <!-- /BUILD:web-table -->
135
131
  <p>Both bundles persist the VFS in <strong>IndexedDB</strong> — state survives page reloads.</p>
136
132
  <pre><code class="bash"><span class="hl-0">bun</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">web-build</span><span class="hl-1"> </span><span class="hl-3"># → builds/web.min.js + examples/web.min.js</span><br/><span class="hl-0">bun</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">web-full-build</span><span class="hl-1"> </span><span class="hl-3"># → builds/web-full-api.min.js</span><br/><span class="hl-0">bun</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build-all</span><span class="hl-1"> </span><span class="hl-3"># rebuild everything</span>
137
133
  </code><button type="button">Copy</button></pre>
138
134
 
139
- <p><strong><code>web.min.js</code></strong> — lightweight shell with IndexedDB VFS:</p>
140
- <pre><code class="html"><span class="hl-9">&lt;</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">&quot;module&quot;</span><span class="hl-9">&gt;</span><br/><span class="hl-11"> </span><span class="hl-6">import</span><span class="hl-11"> { </span><span class="hl-5">createWebShell</span><span class="hl-11"> } </span><span class="hl-6">from</span><span class="hl-11"> </span><span class="hl-2">&quot;./builds/web.min.js&quot;</span><span class="hl-11">;</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">shell</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-0">createWebShell</span><span class="hl-11">(</span><span class="hl-2">&quot;web-vm&quot;</span><span class="hl-11">, {</span><br/><span class="hl-11"> </span><span class="hl-5">vfs:</span><span class="hl-11"> { </span><span class="hl-5">databaseName:</span><span class="hl-11"> </span><span class="hl-2">&quot;virtual-env-js&quot;</span><span class="hl-11">, </span><span class="hl-5">storeName:</span><span class="hl-11"> </span><span class="hl-2">&quot;vfs&quot;</span><span class="hl-11"> },</span><br/><span class="hl-11"> });</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">ensureInitialized</span><span class="hl-11">();</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">out</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">executeCommandLine</span><span class="hl-11">(</span><span class="hl-2">&quot;ls /etc &amp;&amp; echo hello&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-5">console</span><span class="hl-11">.</span><span class="hl-0">log</span><span class="hl-11">(</span><span class="hl-5">out</span><span class="hl-11">.</span><span class="hl-5">stdout</span><span class="hl-11">);</span><br/><span class="hl-9">&lt;/</span><span class="hl-10">script</span><span class="hl-9">&gt;</span>
135
+ <!-- BUILD:web-options -->
136
+ <p><strong><code>fortune-nyx-v1.5.1-web.min.js</code></strong> lightweight shell with IndexedDB VFS:</p>
137
+ <pre><code class="html"><span class="hl-9">&lt;</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">&quot;module&quot;</span><span class="hl-9">&gt;</span><br/><span class="hl-11"> </span><span class="hl-6">import</span><span class="hl-11"> { </span><span class="hl-5">createWebShell</span><span class="hl-11"> } </span><span class="hl-6">from</span><span class="hl-11"> </span><span class="hl-2">&quot;./builds/fortune-nyx-v1.5.1-web.min.js&quot;</span><span class="hl-11">;</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">shell</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-0">createWebShell</span><span class="hl-11">(</span><span class="hl-2">&quot;web-vm&quot;</span><span class="hl-11">, {</span><br/><span class="hl-11"> </span><span class="hl-5">vfs:</span><span class="hl-11"> { </span><span class="hl-5">databaseName:</span><span class="hl-11"> </span><span class="hl-2">&quot;virtual-env-js&quot;</span><span class="hl-11">, </span><span class="hl-5">storeName:</span><span class="hl-11"> </span><span class="hl-2">&quot;vfs&quot;</span><span class="hl-11"> },</span><br/><span class="hl-11"> });</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">ensureInitialized</span><span class="hl-11">();</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">out</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">executeCommandLine</span><span class="hl-11">(</span><span class="hl-2">&quot;ls /etc &amp;&amp; echo hello&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-5">console</span><span class="hl-11">.</span><span class="hl-0">log</span><span class="hl-11">(</span><span class="hl-5">out</span><span class="hl-11">.</span><span class="hl-5">stdout</span><span class="hl-11">);</span><br/><span class="hl-9">&lt;/</span><span class="hl-10">script</span><span class="hl-9">&gt;</span>
141
138
  </code><button type="button">Copy</button></pre>
142
139
 
143
- <p><strong><code>web-full-api.min.js</code></strong> — mirrors the <code>VirtualShell</code> programmatic API:</p>
144
- <pre><code class="html"><span class="hl-9">&lt;</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">&quot;module&quot;</span><span class="hl-9">&gt;</span><br/><span class="hl-11"> </span><span class="hl-6">import</span><span class="hl-11"> { </span><span class="hl-5">createVirtualShellShim</span><span class="hl-11"> } </span><span class="hl-6">from</span><span class="hl-11"> </span><span class="hl-2">&quot;./builds/web-full-api.min.js&quot;</span><span class="hl-11">;</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">shell</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-0">createVirtualShellShim</span><span class="hl-11">(</span><span class="hl-2">&quot;web-vm&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">ensureInitialized</span><span class="hl-11">();</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">executeCommandLine</span><span class="hl-11">(</span><span class="hl-2">&quot;mkdir -p /app &amp;&amp; echo hello &gt; /app/file.txt&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-5">console</span><span class="hl-11">.</span><span class="hl-0">log</span><span class="hl-11">(</span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">getVfs</span><span class="hl-11">().</span><span class="hl-0">readFile</span><span class="hl-11">(</span><span class="hl-2">&quot;/app/file.txt&quot;</span><span class="hl-11">)); </span><span class="hl-3">// hello</span><br/><span class="hl-9">&lt;/</span><span class="hl-10">script</span><span class="hl-9">&gt;</span>
140
+ <p><strong><code>fortune-nyx-v1.5.1-web-full.min.js</code></strong> — mirrors the <code>VirtualShell</code> programmatic API:</p>
141
+ <pre><code class="html"><span class="hl-9">&lt;</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">&quot;module&quot;</span><span class="hl-9">&gt;</span><br/><span class="hl-11"> </span><span class="hl-6">import</span><span class="hl-11"> { </span><span class="hl-5">createVirtualShellShim</span><span class="hl-11"> } </span><span class="hl-6">from</span><span class="hl-11"> </span><span class="hl-2">&quot;./builds/fortune-nyx-v1.5.1-web-full.min.js&quot;</span><span class="hl-11">;</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">shell</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-0">createVirtualShellShim</span><span class="hl-11">(</span><span class="hl-2">&quot;web-vm&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">ensureInitialized</span><span class="hl-11">();</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">executeCommandLine</span><span class="hl-11">(</span><span class="hl-2">&quot;mkdir -p /app &amp;&amp; echo hello &gt; /app/file.txt&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-5">console</span><span class="hl-11">.</span><span class="hl-0">log</span><span class="hl-11">(</span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">getVfs</span><span class="hl-11">().</span><span class="hl-0">readFile</span><span class="hl-11">(</span><span class="hl-2">&quot;/app/file.txt&quot;</span><span class="hl-11">)); </span><span class="hl-3">// hello</span><br/><span class="hl-9">&lt;/</span><span class="hl-10">script</span><span class="hl-9">&gt;</span>
145
142
  </code><button type="button">Copy</button></pre>
146
143
 
144
+ <!-- /BUILD:web-options -->
147
145
  <p><strong>Run the demo locally:</strong></p>
148
146
  <pre><code class="bash"><span class="hl-0">bun</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">example-serve</span><br/><span class="hl-3"># Open http://localhost:8787/index.html</span>
149
147
  </code><button type="button">Copy</button></pre>
@@ -162,6 +160,8 @@ The standalone builds are intended for quick demos and testing. For production u
162
160
  <hr>
163
161
  <details>
164
162
  <summary><strong>API Reference</strong></summary>
163
+ <!-- https://itsrealfortune.fr/typescript-virtual-container/ -->
164
+ <p>API reference for all core classes and utilities. Designed for quick lookup while developing with the library. More extensive documentation, examples, and guides are available in <a href="https://itsrealfortune.fr/typescript-virtual-container/">the documentation</a>.</p>
165
165
  <h3 id="_-1" class="tsd-anchor-link"><code>VirtualSshServer</code><a href="#_-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
166
166
  <pre><code class="typescript"><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-0">VirtualSshServer</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-5">port:</span><span class="hl-1"> </span><span class="hl-5">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-5">hostname</span><span class="hl-1">?: </span><span class="hl-5">string</span><span class="hl-1">; </span><span class="hl-3">// default: &quot;typescript-vm&quot;</span><br/><span class="hl-1"> </span><span class="hl-5">shell</span><span class="hl-1">?: </span><span class="hl-5">VirtualShell</span><span class="hl-1">; </span><span class="hl-3">// share state with SFTP server</span><br/><span class="hl-1"> </span><span class="hl-5">maxAuthAttempts</span><span class="hl-1">?: </span><span class="hl-5">number</span><span class="hl-1">; </span><span class="hl-3">// default: 5</span><br/><span class="hl-1"> </span><span class="hl-5">lockoutDurationMs</span><span class="hl-1">?: </span><span class="hl-5">number</span><span class="hl-1">; </span><span class="hl-3">// default: 60_000</span><br/><span class="hl-1">})</span>
167
167
  </code><button type="button">Copy</button></pre>
@@ -1521,7 +1521,7 @@ The standalone builds are intended for quick demos and testing. For production u
1521
1521
  <summary><strong>Linux Rootfs &amp; VFS PATH Resolution</strong></summary>
1522
1522
  <h3 id="directory-layout" class="tsd-anchor-link">Directory Layout<a href="#directory-layout" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
1523
1523
  <p>On every <code>VirtualShell</code> init, a realistic Linux hierarchy is bootstrapped idempotently:</p>
1524
- <pre><code><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">bin</span><span class="hl-1"> -&gt; </span><span class="hl-5">usr</span><span class="hl-1">/</span><span class="hl-0">bin</span><span class="hl-1"> (</span><span class="hl-5">symlink</span><span class="hl-1">, </span><span class="hl-5">Debian</span><span class="hl-1">-</span><span class="hl-5">style</span><span class="hl-1">)</span><br/><span class="hl-1">├── </span><span class="hl-5">sbin</span><span class="hl-1"> -&gt; </span><span class="hl-5">usr</span><span class="hl-1">/</span><span class="hl-0">sbin</span><span class="hl-1"> (</span><span class="hl-5">symlink</span><span class="hl-1">, </span><span class="hl-5">Debian</span><span class="hl-1">-</span><span class="hl-5">style</span><span class="hl-1">)</span><br/><span class="hl-1">├── </span><span class="hl-5">lib</span><span class="hl-1">/ (</span><span class="hl-7">ELF</span><span class="hl-1"> </span><span class="hl-5">stub</span><span class="hl-1">)</span><br/><span class="hl-1">├── </span><span class="hl-5">lib</span><span class="hl-1">/</span><span class="hl-5">modules</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">lib</span><span class="hl-1">/</span><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">linux</span><span class="hl-1">-</span><span class="hl-5">gnu</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">lib64</span><span class="hl-1"> -&gt; </span><span class="hl-5">usr</span><span class="hl-1">/</span><span class="hl-0">lib64</span><span class="hl-1"> (</span><span class="hl-5">symlink</span><span class="hl-1">, </span><span class="hl-5">Debian</span><span class="hl-1">-</span><span class="hl-5">style</span><span class="hl-1">)</span><br/><span class="hl-1">├── </span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1"> -&gt; </span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">├── </span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1">.</span><span class="hl-5">old</span><span class="hl-1"> -&gt; </span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1">-&lt;</span><span class="hl-17">prev</span><span class="hl-1">&gt;</span><br/><span class="hl-1">├── </span><span class="hl-5">vmlinuz</span><span class="hl-1"> -&gt; </span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">vmlinuz</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">├── </span><span class="hl-5">vmlinuz</span><span class="hl-1">.</span><span class="hl-5">old</span><span class="hl-1"> -&gt; </span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">vmlinuz</span><span class="hl-1">-&lt;</span><span class="hl-17">prev</span><span class="hl-1">&gt;</span><br/><span class="hl-1">├── </span><span class="hl-5">lost</span><span class="hl-1">+</span><span class="hl-5">found</span><span class="hl-1">/ (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o700</span><span class="hl-1">, </span><span class="hl-5">ext4</span><span class="hl-1"> </span><span class="hl-5">fsck</span><span class="hl-1"> </span><span class="hl-5">dir</span><span class="hl-1">)</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">boot</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">grub</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ └── </span><span class="hl-5">grub</span><span class="hl-1">.</span><span class="hl-5">cfg</span><span class="hl-1"> </span><span class="hl-5">virtual</span><span class="hl-1"> </span><span class="hl-5">bootloader</span><span class="hl-1"> </span><span class="hl-5">config</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">vmlinuz</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt; </span><span class="hl-5">kernel</span><span class="hl-1"> </span><span class="hl-5">stub</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt; </span><span class="hl-5">initrd</span><span class="hl-1"> </span><span class="hl-5">stub</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">System</span><span class="hl-1">.</span><span class="hl-5">map</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">│ └── </span><span class="hl-5">config</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">dev</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-4">null</span><span class="hl-1"> / </span><span class="hl-5">zero</span><span class="hl-1"> / </span><span class="hl-0">full</span><span class="hl-1"> (</span><span class="hl-8">0o666</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">random</span><span class="hl-1"> / </span><span class="hl-0">urandom</span><span class="hl-1"> (</span><span class="hl-8">0o444</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-0">mem</span><span class="hl-1"> (</span><span class="hl-8">0o640</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">console</span><span class="hl-1"> / </span><span class="hl-5">tty</span><span class="hl-1"> / </span><span class="hl-5">tty0</span><span class="hl-1"> / </span><span class="hl-5">tty1</span><span class="hl-1"> / </span><span class="hl-5">ttyS0</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sda</span><span class="hl-1"> / </span><span class="hl-5">sda1</span><span class="hl-1"> / </span><span class="hl-5">sda2</span><span class="hl-1"> </span><span class="hl-5">block</span><span class="hl-1"> </span><span class="hl-5">device</span><span class="hl-1"> </span><span class="hl-5">stubs</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">loop0</span><span class="hl-1">-</span><span class="hl-5">loop7</span><span class="hl-1"> + </span><span class="hl-5">loop</span><span class="hl-1">-</span><span class="hl-5">control</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">stdin</span><span class="hl-1"> / </span><span class="hl-5">stdout</span><span class="hl-1"> / </span><span class="hl-5">stderr</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">pts</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">shm</span><span class="hl-1">/</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">etc</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">apt</span><span class="hl-1">/</span><span class="hl-5">sources</span><span class="hl-1">.</span><span class="hl-5">list</span><span class="hl-1"> + </span><span class="hl-5">sources</span><span class="hl-1">.</span><span class="hl-5">list</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">cron</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">init</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">ld</span><span class="hl-1">.</span><span class="hl-5">so</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> + </span><span class="hl-5">ld</span><span class="hl-1">.</span><span class="hl-5">so</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">linux</span><span class="hl-1">-</span><span class="hl-5">gnu</span><span class="hl-1">.</span><span class="hl-5">conf</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">network</span><span class="hl-1">/</span><span class="hl-5">interfaces</span><span class="hl-1"> </span><span class="hl-5">lo</span><span class="hl-1"> + </span><span class="hl-0">eth0</span><span class="hl-1"> (</span><span class="hl-7">DHCP</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">pam</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/ </span><span class="hl-5">common</span><span class="hl-1">-</span><span class="hl-5">auth</span><span class="hl-1">|</span><span class="hl-5">account</span><span class="hl-1">|</span><span class="hl-5">password</span><span class="hl-1">|</span><span class="hl-5">session</span><span class="hl-1"> + </span><span class="hl-5">sshd</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">security</span><span class="hl-1">/</span><span class="hl-5">limits</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> + </span><span class="hl-5">access</span><span class="hl-1">.</span><span class="hl-5">conf</span><br/><span class="hl-1">│ ├── </span><span class="hl-0">sudoers</span><span class="hl-1"> (</span><span class="hl-8">0o440</span><span class="hl-1">) + </span><span class="hl-5">sudoers</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">systemd</span><span class="hl-1">/</span><span class="hl-5">system</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">debian_version</span><span class="hl-1"> </span><span class="hl-8">12.0</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">fstab</span><span class="hl-1"> </span><span class="hl-7">UUID</span><span class="hl-1"> </span><span class="hl-5">stubs</span><span class="hl-1"> + </span><span class="hl-5">tmpfs</span><span class="hl-1"> </span><span class="hl-5">entries</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">group</span><span class="hl-1"> </span><span class="hl-5">synced</span><span class="hl-1"> </span><span class="hl-5">from</span><span class="hl-1"> </span><span class="hl-5">VirtualUserManager</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">hostname</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">hosts</span><span class="hl-1"> </span><span class="hl-8">127.0</span><span class="hl-1">.</span><span class="hl-8">0.1</span><span class="hl-1"> + ::</span><span class="hl-8">1</span><span class="hl-1"> + </span><span class="hl-7">VM</span><span class="hl-1"> </span><span class="hl-5">hostname</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">issue</span><span class="hl-1"> </span><span class="hl-5">login</span><span class="hl-1"> </span><span class="hl-5">banner</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">locale</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> </span><span class="hl-7">LANG</span><span class="hl-1">=</span><span class="hl-5">en_US</span><span class="hl-1">.</span><span class="hl-7">UTF</span><span class="hl-1">-</span><span class="hl-8">8</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">localtime</span><span class="hl-1"> / </span><span class="hl-5">timezone</span><span class="hl-1"> </span><span class="hl-7">UTC</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">login</span><span class="hl-1">.</span><span class="hl-5">defs</span><span class="hl-1"> </span><span class="hl-7">UID_MIN</span><span class="hl-1">=</span><span class="hl-8">1000</span><span class="hl-1"> </span><span class="hl-7">SHA512</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">motd</span><span class="hl-1"> </span><span class="hl-5">uses</span><span class="hl-1"> </span><span class="hl-5">ShellProperties</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">os</span><span class="hl-1">-</span><span class="hl-5">release</span><span class="hl-1"> </span><span class="hl-7">NAME</span><span class="hl-1">=</span><span class="hl-2">&quot;Fortune GNU/Linux&quot;</span><span class="hl-1"> + </span><span class="hl-5">ShellProperties</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">passwd</span><span class="hl-1"> </span><span class="hl-5">synced</span><span class="hl-1"> </span><span class="hl-5">from</span><span class="hl-1"> </span><span class="hl-5">VirtualUserManager</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">profile</span><span class="hl-1"> </span><span class="hl-7">PATH</span><span class="hl-1"> + </span><span class="hl-7">PS1</span><span class="hl-1"> </span><span class="hl-5">defaults</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">resolv</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> </span><span class="hl-8">1.1</span><span class="hl-1">.</span><span class="hl-8">1.1</span><span class="hl-1"> + </span><span class="hl-8">8.8</span><span class="hl-1">.</span><span class="hl-8">8.8</span><br/><span class="hl-1">│ ├── </span><span class="hl-0">shadow</span><span class="hl-1"> (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o640</span><span class="hl-1">, </span><span class="hl-5">fake</span><span class="hl-1"> </span><span class="hl-5">hashes</span><span class="hl-1">)</span><br/><span class="hl-1">│ └── </span><span class="hl-5">shells</span><span class="hl-1"> /</span><span class="hl-5">bin</span><span class="hl-1">/</span><span class="hl-5">sh</span><span class="hl-1"> /</span><span class="hl-5">bin</span><span class="hl-1">/</span><span class="hl-5">bash</span><span class="hl-1"> /</span><span class="hl-5">usr</span><span class="hl-1">/</span><span class="hl-5">bin</span><span class="hl-1">/</span><span class="hl-5">bash</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">home</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">media</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">mnt</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">opt</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">snap</span><span class="hl-1">/</span><span class="hl-5">bin</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">srv</span><span class="hl-1">/</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">proc</span><span class="hl-1">/ </span><span class="hl-5">kernel</span><span class="hl-1"> </span><span class="hl-5">simulation</span><span class="hl-1"> </span><span class="hl-0">engine</span><span class="hl-1"> (</span><span class="hl-5">refreshed</span><span class="hl-1"> </span><span class="hl-5">on</span><span class="hl-1"> </span><span class="hl-5">demand</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">log</span><span class="hl-1"> + </span><span class="hl-5">version</span><span class="hl-1"> </span><span class="hl-5">kernel</span><span class="hl-1"> </span><span class="hl-5">boot</span><span class="hl-1"> </span><span class="hl-5">sequence</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">net</span><span class="hl-1">/</span><span class="hl-5">dev</span><span class="hl-1"> + </span><span class="hl-5">if_inet6</span><span class="hl-1"> + </span><span class="hl-5">tcp</span><span class="hl-1"> + </span><span class="hl-5">tcp6</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sys</span><span class="hl-1">/</span><span class="hl-5">kernel</span><span class="hl-1">/ </span><span class="hl-5">hostname</span><span class="hl-1">, </span><span class="hl-5">ostype</span><span class="hl-1">, </span><span class="hl-5">osrelease</span><span class="hl-1">, </span><span class="hl-5">pid_max</span><span class="hl-1">,</span><br/><span class="hl-1">│ │ </span><span class="hl-5">threads</span><span class="hl-1">-</span><span class="hl-5">max</span><span class="hl-1">, </span><span class="hl-5">randomize_va_space</span><span class="hl-1">, </span><span class="hl-5">dmesg_restrict</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sys</span><span class="hl-1">/</span><span class="hl-5">net</span><span class="hl-1">/</span><span class="hl-5">ipv4</span><span class="hl-1">/</span><span class="hl-5">ip_forward</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sys</span><span class="hl-1">/</span><span class="hl-5">vm</span><span class="hl-1">/</span><span class="hl-5">swappiness</span><span class="hl-1"> + </span><span class="hl-5">overcommit_memory</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">self</span><span class="hl-1">/</span><span class="hl-5">mounts</span><span class="hl-1"> </span><span class="hl-5">mirrors</span><span class="hl-1"> </span><span class="hl-5">most</span><span class="hl-1"> </span><span class="hl-5">recent</span><span class="hl-1"> </span><span class="hl-5">session</span><span class="hl-2">&#39;s /proc/&lt;pid&gt;</span><span class="hl-19">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-8">1</span><span class="hl-1">/ </span><span class="hl-0">init</span><span class="hl-1"> (</span><span class="hl-5">cmdline</span><span class="hl-1">, </span><span class="hl-5">comm</span><span class="hl-1">, </span><span class="hl-5">stat</span><span class="hl-1">, </span><span class="hl-5">status</span><span class="hl-1">, </span><span class="hl-5">environ</span><span class="hl-1">, </span><span class="hl-5">fd</span><span class="hl-1">/, </span><span class="hl-5">fdinfo</span><span class="hl-1">/)</span><br/><span class="hl-1">│ ├── &lt;</span><span class="hl-5">pid</span><span class="hl-1">&gt;/ </span><span class="hl-5">one</span><span class="hl-1"> </span><span class="hl-5">subtree</span><span class="hl-1"> </span><span class="hl-5">per</span><span class="hl-1"> </span><span class="hl-5">active</span><span class="hl-1"> </span><span class="hl-0">session</span><span class="hl-1"> (</span><span class="hl-7">TTY</span><span class="hl-1">-</span><span class="hl-5">derived</span><span class="hl-1"> </span><span class="hl-7">PID</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">cmdline</span><span class="hl-1"> </span><span class="hl-5">kernel</span><span class="hl-1"> </span><span class="hl-5">boot</span><span class="hl-1"> </span><span class="hl-5">args</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">cpuinfo</span><span class="hl-1"> </span><span class="hl-5">real</span><span class="hl-1"> </span><span class="hl-5">host</span><span class="hl-1"> </span><span class="hl-7">CPU</span><span class="hl-1"> </span><span class="hl-5">passthrough</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">filesystems</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">hostname</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">loadavg</span><span class="hl-1"> </span><span class="hl-5">computed</span><span class="hl-1"> </span><span class="hl-5">dynamically</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">meminfo</span><span class="hl-1"> </span><span class="hl-5">real</span><span class="hl-1"> </span><span class="hl-5">host</span><span class="hl-1"> </span><span class="hl-0">memory</span><span class="hl-1"> (</span><span class="hl-5">Total</span><span class="hl-1">/</span><span class="hl-5">Free</span><span class="hl-1">/</span><span class="hl-5">Available</span><span class="hl-1">/</span><span class="hl-5">Buffers</span><span class="hl-1">/</span><span class="hl-5">Cached</span><span class="hl-1">/</span><span class="hl-5">Swap</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">mounts</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">partitions</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">swaps</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">uptime</span><span class="hl-1"> </span><span class="hl-5">computed</span><span class="hl-1"> </span><span class="hl-5">from</span><span class="hl-1"> </span><span class="hl-5">shellStartTime</span><br/><span class="hl-1">│ └── </span><span class="hl-5">version</span><span class="hl-1"> </span><span class="hl-0">Linux</span><span class="hl-1"> &lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt; (</span><span class="hl-5">fortune</span><span class="hl-1">@</span><span class="hl-5">build</span><span class="hl-1">)</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">root</span><span class="hl-1">/ (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o700</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── .</span><span class="hl-5">bashrc</span><span class="hl-1"> </span><span class="hl-5">colored</span><span class="hl-1"> </span><span class="hl-7">PS1</span><span class="hl-1">, </span><span class="hl-7">PATH</span><span class="hl-1">, </span><span class="hl-5">ll</span><span class="hl-1">/</span><span class="hl-5">la</span><span class="hl-1"> </span><span class="hl-5">aliases</span><br/><span class="hl-1">│ └── .</span><span class="hl-5">profile</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">run</span><span class="hl-1">/ (</span><span class="hl-5">systemd</span><span class="hl-1"> </span><span class="hl-5">tmpfs</span><span class="hl-1"> </span><span class="hl-5">runtime</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">lock</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">systemd</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">user</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">utmp</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">sys</span><span class="hl-1">/ </span><span class="hl-5">sysfs</span><span class="hl-1"> </span><span class="hl-5">graph</span><span class="hl-1"> — </span><span class="hl-5">deterministic</span><span class="hl-1">, </span><span class="hl-5">seeded</span><span class="hl-1"> </span><span class="hl-5">from</span><span class="hl-1"> </span><span class="hl-0">hostname</span><span class="hl-1"> (</span><span class="hl-5">fnv1a</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">class</span><span class="hl-1">/</span><span class="hl-5">net</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">devices</span><span class="hl-1">/</span><span class="hl-5">virtual</span><span class="hl-1">/</span><span class="hl-5">dmi</span><span class="hl-1">/</span><span class="hl-5">id</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">bios_vendor</span><span class="hl-1"> / </span><span class="hl-5">bios_version</span><span class="hl-1"> / </span><span class="hl-5">bios_date</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">sys_vendor</span><span class="hl-1"> / </span><span class="hl-5">product_name</span><span class="hl-1"> / </span><span class="hl-5">product_family</span><span class="hl-1"> / </span><span class="hl-5">product_version</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">product_uuid</span><span class="hl-1"> / </span><span class="hl-5">product_serial</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">chassis_type</span><span class="hl-1"> / </span><span class="hl-5">chassis_vendor</span><span class="hl-1"> / </span><span class="hl-5">chassis_version</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">board_name</span><br/><span class="hl-1">│ │ └── </span><span class="hl-5">modalias</span><br/><span class="hl-1">│ └── </span><span class="hl-5">kernel</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">hostname</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">osrelease</span><br/><span class="hl-1">│ └── </span><span class="hl-5">ostype</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">tmp</span><span class="hl-1">/ (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o1777</span><span class="hl-1">, </span><span class="hl-5">sticky</span><span class="hl-1">)</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">usr</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">bin</span><span class="hl-1">/ </span><span class="hl-5">stubs</span><span class="hl-1"> </span><span class="hl-5">for</span><span class="hl-1"> </span><span class="hl-5">all</span><span class="hl-1"> </span><span class="hl-5">built</span><span class="hl-1">-</span><span class="hl-4">in</span><span class="hl-1"> </span><span class="hl-0">commands</span><span class="hl-1"> (</span><span class="hl-5">exec</span><span class="hl-1"> </span><span class="hl-5">builtin</span><span class="hl-1"> &lt;</span><span class="hl-5">name</span><span class="hl-1">&gt;)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sbin</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">lib</span><span class="hl-1">/ + </span><span class="hl-5">lib64</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">local</span><span class="hl-1">/</span><span class="hl-5">bin</span><span class="hl-1">|</span><span class="hl-5">lib</span><span class="hl-1">|</span><span class="hl-5">share</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">share</span><span class="hl-1">/</span><span class="hl-5">doc</span><span class="hl-1">|</span><span class="hl-5">man</span><span class="hl-1">/</span><span class="hl-5">man1</span><span class="hl-1">/</span><br/><span class="hl-1">│</span><br/><span class="hl-1">└── </span><span class="hl-4">var</span><span class="hl-1">/</span><br/><span class="hl-1"> ├── </span><span class="hl-5">cache</span><span class="hl-1">/</span><span class="hl-5">apt</span><span class="hl-1">/</span><span class="hl-5">archives</span><span class="hl-1">/</span><br/><span class="hl-1"> ├── </span><span class="hl-5">lib</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">apt</span><span class="hl-1">/</span><span class="hl-5">lists</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">misc</span><span class="hl-1">/</span><br/><span class="hl-1"> │ └── </span><span class="hl-5">dpkg</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">available</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">info</span><span class="hl-1">/</span><br/><span class="hl-1"> │ └── </span><span class="hl-5">status</span><span class="hl-1"> </span><span class="hl-5">managed</span><span class="hl-1"> </span><span class="hl-5">by</span><span class="hl-1"> </span><span class="hl-5">VirtualPackageManager</span><br/><span class="hl-1"> ├── </span><span class="hl-5">log</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">apt</span><span class="hl-1">/</span><span class="hl-5">history</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1"> + </span><span class="hl-5">term</span><span class="hl-1">.</span><span class="hl-5">log</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">auth</span><span class="hl-1">.</span><span class="hl-5">log</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">dpkg</span><span class="hl-1">.</span><span class="hl-5">log</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">kern</span><span class="hl-1">.</span><span class="hl-5">log</span><br/><span class="hl-1"> │ └── </span><span class="hl-5">syslog</span><br/><span class="hl-1"> ├── </span><span class="hl-5">mail</span><span class="hl-1">/</span><br/><span class="hl-1"> ├── </span><span class="hl-5">run</span><span class="hl-1"> -&gt; /</span><span class="hl-0">run</span><span class="hl-1"> (</span><span class="hl-5">legacy</span><span class="hl-1"> </span><span class="hl-5">symlink</span><span class="hl-1">)</span><br/><span class="hl-1"> ├── </span><span class="hl-5">spool</span><span class="hl-1">/</span><span class="hl-5">cron</span><span class="hl-1">/</span><br/><span class="hl-1"> └── </span><span class="hl-5">tmp</span><span class="hl-1">/</span>
1524
+ <pre><code><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">bin</span><span class="hl-1"> -&gt; /</span><span class="hl-5">usr</span><span class="hl-1">/</span><span class="hl-0">bin</span><span class="hl-1"> (</span><span class="hl-5">symlink</span><span class="hl-1">, </span><span class="hl-5">Debian</span><span class="hl-1">-</span><span class="hl-5">style</span><span class="hl-1">)</span><br/><span class="hl-1">├── </span><span class="hl-5">sbin</span><span class="hl-1"> -&gt; /</span><span class="hl-5">usr</span><span class="hl-1">/</span><span class="hl-0">sbin</span><span class="hl-1"> (</span><span class="hl-5">symlink</span><span class="hl-1">, </span><span class="hl-5">Debian</span><span class="hl-1">-</span><span class="hl-5">style</span><span class="hl-1">)</span><br/><span class="hl-1">├── </span><span class="hl-5">lib</span><span class="hl-1">/ (</span><span class="hl-7">ELF</span><span class="hl-1"> </span><span class="hl-5">stub</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">modules</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">linux</span><span class="hl-1">-</span><span class="hl-5">gnu</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">lib64</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">ld</span><span class="hl-1">-</span><span class="hl-5">linux</span><span class="hl-1">-</span><span class="hl-5">x86</span><span class="hl-1">-64.</span><span class="hl-5">so</span><span class="hl-1">.</span><span class="hl-8">2</span><span class="hl-1"> (</span><span class="hl-5">stub</span><span class="hl-1">, </span><span class="hl-8">0o755</span><span class="hl-1">)</span><br/><span class="hl-1">├── </span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1"> -&gt; /</span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">├── </span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1">.</span><span class="hl-5">old</span><span class="hl-1"> -&gt; /</span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">├── </span><span class="hl-5">vmlinuz</span><span class="hl-1"> -&gt; /</span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">vmlinuz</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">├── </span><span class="hl-5">vmlinuz</span><span class="hl-1">.</span><span class="hl-5">old</span><span class="hl-1"> -&gt; /</span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">vmlinuz</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">├── </span><span class="hl-5">lost</span><span class="hl-1">+</span><span class="hl-5">found</span><span class="hl-1">/ (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o700</span><span class="hl-1">, </span><span class="hl-5">ext4</span><span class="hl-1"> </span><span class="hl-5">fsck</span><span class="hl-1"> </span><span class="hl-5">dir</span><span class="hl-1">)</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">boot</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">grub</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ └── </span><span class="hl-5">grub</span><span class="hl-1">.</span><span class="hl-5">cfg</span><span class="hl-1"> </span><span class="hl-5">virtual</span><span class="hl-1"> </span><span class="hl-5">bootloader</span><span class="hl-1"> </span><span class="hl-5">config</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">vmlinuz</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt; </span><span class="hl-5">kernel</span><span class="hl-1"> </span><span class="hl-5">stub</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">initrd</span><span class="hl-1">.</span><span class="hl-5">img</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt; </span><span class="hl-5">initrd</span><span class="hl-1"> </span><span class="hl-5">stub</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">System</span><span class="hl-1">.</span><span class="hl-5">map</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">│ └── </span><span class="hl-5">config</span><span class="hl-1">-&lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt;</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">dev</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-4">null</span><span class="hl-1"> / </span><span class="hl-5">zero</span><span class="hl-1"> / </span><span class="hl-0">full</span><span class="hl-1"> (</span><span class="hl-8">0o666</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">random</span><span class="hl-1"> / </span><span class="hl-0">urandom</span><span class="hl-1"> (</span><span class="hl-8">0o444</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-0">mem</span><span class="hl-1"> (</span><span class="hl-8">0o640</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">console</span><span class="hl-1"> / </span><span class="hl-5">tty</span><span class="hl-1"> / </span><span class="hl-5">tty0</span><span class="hl-1"> / </span><span class="hl-5">tty1</span><span class="hl-1"> / </span><span class="hl-5">ttyS0</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sda</span><span class="hl-1"> / </span><span class="hl-5">sda1</span><span class="hl-1"> / </span><span class="hl-5">sda2</span><span class="hl-1"> </span><span class="hl-5">block</span><span class="hl-1"> </span><span class="hl-5">device</span><span class="hl-1"> </span><span class="hl-5">stubs</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">loop0</span><span class="hl-1">-</span><span class="hl-5">loop7</span><span class="hl-1"> + </span><span class="hl-5">loop</span><span class="hl-1">-</span><span class="hl-5">control</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">stdin</span><span class="hl-1"> / </span><span class="hl-5">stdout</span><span class="hl-1"> / </span><span class="hl-5">stderr</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">pts</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">shm</span><span class="hl-1">/</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">etc</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">apt</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">sources</span><span class="hl-1">.</span><span class="hl-5">list</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">sources</span><span class="hl-1">.</span><span class="hl-5">list</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">trusted</span><span class="hl-1">.</span><span class="hl-5">gpg</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">keyrings</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ └── </span><span class="hl-5">apt</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/70</span><span class="hl-5">debconf</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">cron</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/ + </span><span class="hl-5">cron</span><span class="hl-1">.</span><span class="hl-5">daily</span><span class="hl-1">/ + </span><span class="hl-5">cron</span><span class="hl-1">.</span><span class="hl-5">hourly</span><span class="hl-1">/ + </span><span class="hl-5">cron</span><span class="hl-1">.</span><span class="hl-5">weekly</span><span class="hl-1">/ + </span><span class="hl-5">cron</span><span class="hl-1">.</span><span class="hl-5">monthly</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-6">default</span><span class="hl-1">/</span><span class="hl-5">locale</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">init</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">ld</span><span class="hl-1">.</span><span class="hl-5">so</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> + </span><span class="hl-5">ld</span><span class="hl-1">.</span><span class="hl-5">so</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">linux</span><span class="hl-1">-</span><span class="hl-5">gnu</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> + </span><span class="hl-5">fakeroot</span><span class="hl-1">.</span><span class="hl-5">conf</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">netplan</span><span class="hl-1">/</span><span class="hl-8">01</span><span class="hl-1">-</span><span class="hl-5">netcfg</span><span class="hl-1">.</span><span class="hl-5">yaml</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">network</span><span class="hl-1">/</span><span class="hl-5">interfaces</span><span class="hl-1"> </span><span class="hl-5">lo</span><span class="hl-1"> + </span><span class="hl-0">eth0</span><span class="hl-1"> (</span><span class="hl-7">DHCP</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">pam</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/ </span><span class="hl-5">common</span><span class="hl-1">-</span><span class="hl-5">auth</span><span class="hl-1">|</span><span class="hl-5">account</span><span class="hl-1">|</span><span class="hl-5">password</span><span class="hl-1">|</span><span class="hl-5">session</span><span class="hl-1"> · </span><span class="hl-5">sshd</span><span class="hl-1"> · </span><span class="hl-5">login</span><span class="hl-1"> · </span><span class="hl-5">sudo</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">security</span><span class="hl-1">/</span><span class="hl-5">limits</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> + </span><span class="hl-5">access</span><span class="hl-1">.</span><span class="hl-5">conf</span><br/><span class="hl-1">│ ├── </span><span class="hl-0">sudoers</span><span class="hl-1"> (</span><span class="hl-8">0o440</span><span class="hl-1">) + </span><span class="hl-5">sudoers</span><span class="hl-1">.</span><span class="hl-5">d</span><span class="hl-1">/</span><span class="hl-7">README</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">systemd</span><span class="hl-1">/</span><span class="hl-5">system</span><span class="hl-1">/ + </span><span class="hl-5">systemd</span><span class="hl-1">/</span><span class="hl-5">network</span><span class="hl-1">/ + </span><span class="hl-5">systemd</span><span class="hl-1">/</span><span class="hl-5">system</span><span class="hl-1">.</span><span class="hl-5">conf</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">debian_version</span><span class="hl-1"> </span><span class="hl-5">nyx</span><span class="hl-1">/</span><span class="hl-5">stable</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">fstab</span><span class="hl-1"> </span><span class="hl-7">UUID</span><span class="hl-1"> </span><span class="hl-5">stubs</span><span class="hl-1"> + </span><span class="hl-5">tmpfs</span><span class="hl-1"> </span><span class="hl-5">entries</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">group</span><span class="hl-1"> </span><span class="hl-5">synced</span><span class="hl-1"> </span><span class="hl-5">from</span><span class="hl-1"> </span><span class="hl-5">VirtualUserManager</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">hostname</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">hosts</span><span class="hl-1"> </span><span class="hl-8">127.0</span><span class="hl-1">.</span><span class="hl-8">0.1</span><span class="hl-1"> + ::</span><span class="hl-8">1</span><span class="hl-1"> + </span><span class="hl-7">VM</span><span class="hl-1"> </span><span class="hl-5">hostname</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">issue</span><span class="hl-1"> + </span><span class="hl-5">issue</span><span class="hl-1">.</span><span class="hl-5">net</span><span class="hl-1"> </span><span class="hl-5">login</span><span class="hl-1"> </span><span class="hl-5">banner</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">locale</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> + </span><span class="hl-5">locale</span><span class="hl-1">.</span><span class="hl-5">gen</span><span class="hl-1"> </span><span class="hl-7">LANG</span><span class="hl-1">=</span><span class="hl-5">en_US</span><span class="hl-1">.</span><span class="hl-7">UTF</span><span class="hl-1">-</span><span class="hl-8">8</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">localtime</span><span class="hl-1"> / </span><span class="hl-5">timezone</span><span class="hl-1"> </span><span class="hl-7">UTC</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">login</span><span class="hl-1">.</span><span class="hl-5">defs</span><span class="hl-1"> </span><span class="hl-7">UID_MIN</span><span class="hl-1">=</span><span class="hl-8">1000</span><span class="hl-1"> </span><span class="hl-7">SHA512</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">lsb</span><span class="hl-1">-</span><span class="hl-5">release</span><span class="hl-1"> </span><span class="hl-5">Fortune</span><span class="hl-1"> </span><span class="hl-7">GNU</span><span class="hl-1">/</span><span class="hl-5">Linux</span><span class="hl-1"> + </span><span class="hl-5">ShellProperties</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">motd</span><span class="hl-1"> </span><span class="hl-5">uses</span><span class="hl-1"> </span><span class="hl-5">ShellProperties</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">nsswitch</span><span class="hl-1">.</span><span class="hl-5">conf</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">os</span><span class="hl-1">-</span><span class="hl-5">release</span><span class="hl-1"> </span><span class="hl-7">NAME</span><span class="hl-1">=</span><span class="hl-2">&quot;Fortune GNU/Linux&quot;</span><span class="hl-1"> + </span><span class="hl-5">ShellProperties</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">passwd</span><span class="hl-1"> </span><span class="hl-5">synced</span><span class="hl-1"> </span><span class="hl-5">from</span><span class="hl-1"> </span><span class="hl-5">VirtualUserManager</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">profile</span><span class="hl-1"> </span><span class="hl-7">PATH</span><span class="hl-1"> + </span><span class="hl-7">PS1</span><span class="hl-1"> </span><span class="hl-5">defaults</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">resolv</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> </span><span class="hl-8">1.1</span><span class="hl-1">.</span><span class="hl-8">1.1</span><span class="hl-1"> + </span><span class="hl-8">8.8</span><span class="hl-1">.</span><span class="hl-8">8.8</span><br/><span class="hl-1">│ ├── </span><span class="hl-0">shadow</span><span class="hl-1"> (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o640</span><span class="hl-1">, </span><span class="hl-5">fake</span><span class="hl-1"> </span><span class="hl-5">hashes</span><span class="hl-1">)</span><br/><span class="hl-1">│ └── </span><span class="hl-5">shells</span><span class="hl-1"> /</span><span class="hl-5">bin</span><span class="hl-1">/</span><span class="hl-5">sh</span><span class="hl-1"> /</span><span class="hl-5">bin</span><span class="hl-1">/</span><span class="hl-5">bash</span><span class="hl-1"> /</span><span class="hl-5">usr</span><span class="hl-1">/</span><span class="hl-5">bin</span><span class="hl-1">/</span><span class="hl-5">bash</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">home</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── &lt;</span><span class="hl-5">user</span><span class="hl-1">&gt;/</span><br/><span class="hl-1">│ └── </span><span class="hl-7">README</span><span class="hl-1">.</span><span class="hl-5">txt</span><span class="hl-1"> </span><span class="hl-5">created</span><span class="hl-1"> </span><span class="hl-5">on</span><span class="hl-1"> </span><span class="hl-5">first</span><span class="hl-1"> </span><span class="hl-5">login</span><br/><span class="hl-1">├── </span><span class="hl-5">media</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">mnt</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">opt</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">rclone</span><span class="hl-1">/</span><br/><span class="hl-1">├── </span><span class="hl-5">srv</span><span class="hl-1">/</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">proc</span><span class="hl-1">/ </span><span class="hl-5">kernel</span><span class="hl-1"> </span><span class="hl-5">simulation</span><span class="hl-1"> </span><span class="hl-0">engine</span><span class="hl-1"> (</span><span class="hl-5">refreshed</span><span class="hl-1"> </span><span class="hl-5">on</span><span class="hl-1"> </span><span class="hl-5">demand</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">boot</span><span class="hl-1">/</span><span class="hl-5">log</span><span class="hl-1"> + </span><span class="hl-5">version</span><span class="hl-1"> </span><span class="hl-5">kernel</span><span class="hl-1"> </span><span class="hl-5">boot</span><span class="hl-1"> </span><span class="hl-5">sequence</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">net</span><span class="hl-1">/</span><span class="hl-5">dev</span><span class="hl-1"> + </span><span class="hl-5">if_inet6</span><span class="hl-1"> + </span><span class="hl-5">tcp</span><span class="hl-1"> + </span><span class="hl-5">tcp6</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sys</span><span class="hl-1">/</span><span class="hl-5">kernel</span><span class="hl-1">/ </span><span class="hl-5">hostname</span><span class="hl-1">, </span><span class="hl-5">ostype</span><span class="hl-1">, </span><span class="hl-5">osrelease</span><span class="hl-1">, </span><span class="hl-5">pid_max</span><span class="hl-1">,</span><br/><span class="hl-1">│ │ </span><span class="hl-5">threads</span><span class="hl-1">-</span><span class="hl-5">max</span><span class="hl-1">, </span><span class="hl-5">randomize_va_space</span><span class="hl-1">, </span><span class="hl-5">dmesg_restrict</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sys</span><span class="hl-1">/</span><span class="hl-5">net</span><span class="hl-1">/</span><span class="hl-5">ipv4</span><span class="hl-1">/</span><span class="hl-5">ip_forward</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sys</span><span class="hl-1">/</span><span class="hl-5">vm</span><span class="hl-1">/</span><span class="hl-5">swappiness</span><span class="hl-1"> + </span><span class="hl-5">overcommit_memory</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">self</span><span class="hl-1">/</span><span class="hl-5">mounts</span><span class="hl-1"> </span><span class="hl-5">mirrors</span><span class="hl-1"> </span><span class="hl-5">most</span><span class="hl-1"> </span><span class="hl-5">recent</span><span class="hl-1"> </span><span class="hl-5">session</span><span class="hl-2">&#39;s /proc/&lt;pid&gt;</span><span class="hl-19">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-8">1</span><span class="hl-1">/ </span><span class="hl-0">init</span><span class="hl-1"> (</span><span class="hl-5">cmdline</span><span class="hl-1">, </span><span class="hl-5">comm</span><span class="hl-1">, </span><span class="hl-5">stat</span><span class="hl-1">, </span><span class="hl-5">status</span><span class="hl-1">, </span><span class="hl-5">environ</span><span class="hl-1">, </span><span class="hl-5">fd</span><span class="hl-1">/, </span><span class="hl-5">fdinfo</span><span class="hl-1">/)</span><br/><span class="hl-1">│ ├── &lt;</span><span class="hl-5">pid</span><span class="hl-1">&gt;/ </span><span class="hl-5">one</span><span class="hl-1"> </span><span class="hl-5">subtree</span><span class="hl-1"> </span><span class="hl-5">per</span><span class="hl-1"> </span><span class="hl-5">active</span><span class="hl-1"> </span><span class="hl-0">session</span><span class="hl-1"> (</span><span class="hl-7">TTY</span><span class="hl-1">-</span><span class="hl-5">derived</span><span class="hl-1"> </span><span class="hl-7">PID</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">cmdline</span><span class="hl-1"> </span><span class="hl-5">kernel</span><span class="hl-1"> </span><span class="hl-5">boot</span><span class="hl-1"> </span><span class="hl-5">args</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">cpuinfo</span><span class="hl-1"> </span><span class="hl-5">real</span><span class="hl-1"> </span><span class="hl-5">host</span><span class="hl-1"> </span><span class="hl-7">CPU</span><span class="hl-1"> </span><span class="hl-5">passthrough</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">filesystems</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">hostname</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">loadavg</span><span class="hl-1"> </span><span class="hl-5">computed</span><span class="hl-1"> </span><span class="hl-5">dynamically</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">meminfo</span><span class="hl-1"> </span><span class="hl-5">real</span><span class="hl-1"> </span><span class="hl-5">host</span><span class="hl-1"> </span><span class="hl-0">memory</span><span class="hl-1"> (</span><span class="hl-5">Total</span><span class="hl-1">/</span><span class="hl-5">Free</span><span class="hl-1">/</span><span class="hl-5">Available</span><span class="hl-1">/</span><span class="hl-5">Buffers</span><span class="hl-1">/</span><span class="hl-5">Cached</span><span class="hl-1">/</span><span class="hl-5">Swap</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">mounts</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">partitions</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">swaps</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">uptime</span><span class="hl-1"> </span><span class="hl-5">computed</span><span class="hl-1"> </span><span class="hl-5">from</span><span class="hl-1"> </span><span class="hl-5">shellStartTime</span><br/><span class="hl-1">│ └── </span><span class="hl-5">version</span><span class="hl-1"> </span><span class="hl-0">Linux</span><span class="hl-1"> &lt;</span><span class="hl-17">kernel</span><span class="hl-1">&gt; (</span><span class="hl-5">fortune</span><span class="hl-1">@</span><span class="hl-5">build</span><span class="hl-1">)</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">root</span><span class="hl-1">/ (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o700</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── .</span><span class="hl-5">ssh</span><span class="hl-1">/ (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o700</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── .</span><span class="hl-5">config</span><span class="hl-1">/</span><span class="hl-5">pip</span><span class="hl-1">/</span><span class="hl-5">pip</span><span class="hl-1">.</span><span class="hl-5">conf</span><span class="hl-1"> </span><span class="hl-6">break</span><span class="hl-1">-</span><span class="hl-5">system</span><span class="hl-1">-</span><span class="hl-5">packages</span><span class="hl-1"> = </span><span class="hl-4">true</span><br/><span class="hl-1">│ ├── .</span><span class="hl-5">local</span><span class="hl-1">/</span><span class="hl-5">share</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── .</span><span class="hl-5">bash_logout</span><br/><span class="hl-1">│ ├── .</span><span class="hl-5">bashrc</span><span class="hl-1"> </span><span class="hl-5">colored</span><span class="hl-1"> </span><span class="hl-7">PS1</span><span class="hl-1">, </span><span class="hl-7">PATH</span><span class="hl-1">, </span><span class="hl-5">ll</span><span class="hl-1">/</span><span class="hl-5">la</span><span class="hl-1">/</span><span class="hl-5">l</span><span class="hl-1"> </span><span class="hl-5">aliases</span><br/><span class="hl-1">│ └── .</span><span class="hl-5">profile</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">run</span><span class="hl-1">/ (</span><span class="hl-5">systemd</span><span class="hl-1"> </span><span class="hl-5">tmpfs</span><span class="hl-1"> </span><span class="hl-5">runtime</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">lock</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">systemd</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">user</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">utmp</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">sys</span><span class="hl-1">/ </span><span class="hl-5">sysfs</span><span class="hl-1"> </span><span class="hl-5">graph</span><span class="hl-1"> — </span><span class="hl-5">deterministic</span><span class="hl-1">, </span><span class="hl-5">seeded</span><span class="hl-1"> </span><span class="hl-5">from</span><span class="hl-1"> </span><span class="hl-0">hostname</span><span class="hl-1"> (</span><span class="hl-5">fnv1a</span><span class="hl-1">)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">class</span><span class="hl-1">/</span><span class="hl-5">net</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">devices</span><span class="hl-1">/</span><span class="hl-5">virtual</span><span class="hl-1">/</span><span class="hl-5">dmi</span><span class="hl-1">/</span><span class="hl-5">id</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">bios_vendor</span><span class="hl-1"> / </span><span class="hl-5">bios_version</span><span class="hl-1"> / </span><span class="hl-5">bios_date</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">sys_vendor</span><span class="hl-1"> / </span><span class="hl-5">product_name</span><span class="hl-1"> / </span><span class="hl-5">product_family</span><span class="hl-1"> / </span><span class="hl-5">product_version</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">product_uuid</span><span class="hl-1"> / </span><span class="hl-5">product_serial</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">chassis_type</span><span class="hl-1"> / </span><span class="hl-5">chassis_vendor</span><span class="hl-1"> / </span><span class="hl-5">chassis_version</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">board_name</span><br/><span class="hl-1">│ │ └── </span><span class="hl-5">modalias</span><br/><span class="hl-1">│ └── </span><span class="hl-5">kernel</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">hostname</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">osrelease</span><br/><span class="hl-1">│ └── </span><span class="hl-5">ostype</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">tmp</span><span class="hl-1">/ (</span><span class="hl-5">mode</span><span class="hl-1"> </span><span class="hl-8">0o1777</span><span class="hl-1">, </span><span class="hl-5">sticky</span><span class="hl-1">)</span><br/><span class="hl-1">│ └── </span><span class="hl-5">node</span><span class="hl-1">-</span><span class="hl-5">compile</span><span class="hl-1">-</span><span class="hl-5">cache</span><span class="hl-1">/</span><br/><span class="hl-1">│</span><br/><span class="hl-1">├── </span><span class="hl-5">usr</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">bin</span><span class="hl-1">/ </span><span class="hl-5">stubs</span><span class="hl-1"> </span><span class="hl-5">for</span><span class="hl-1"> </span><span class="hl-5">all</span><span class="hl-1"> </span><span class="hl-5">built</span><span class="hl-1">-</span><span class="hl-4">in</span><span class="hl-1"> </span><span class="hl-0">commands</span><span class="hl-1"> (</span><span class="hl-5">exec</span><span class="hl-1"> </span><span class="hl-5">builtin</span><span class="hl-1"> &lt;</span><span class="hl-5">name</span><span class="hl-1">&gt;)</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">sbin</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">lib</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">linux</span><span class="hl-1">-</span><span class="hl-5">gnu</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">python3</span><span class="hl-1">/</span><span class="hl-5">dist</span><span class="hl-1">-</span><span class="hl-5">packages</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ ├── </span><span class="hl-5">python3</span><span class="hl-1">.</span><span class="hl-8">12</span><span class="hl-1">/</span><br/><span class="hl-1">│ │ └── </span><span class="hl-5">jvm</span><span class="hl-1">/</span><span class="hl-5">java</span><span class="hl-1">-</span><span class="hl-8">21</span><span class="hl-1">-</span><span class="hl-5">openjdk</span><span class="hl-1">-</span><span class="hl-5">amd64</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">local</span><span class="hl-1">/</span><span class="hl-5">bin</span><span class="hl-1">|</span><span class="hl-5">lib</span><span class="hl-1">|</span><span class="hl-5">share</span><span class="hl-1">|</span><span class="hl-5">include</span><span class="hl-1">|</span><span class="hl-5">sbin</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">share</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">doc</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">man</span><span class="hl-1">/</span><span class="hl-5">man1</span><span class="hl-1">|</span><span class="hl-5">man5</span><span class="hl-1">|</span><span class="hl-5">man8</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">ca</span><span class="hl-1">-</span><span class="hl-5">certificates</span><span class="hl-1">/</span><br/><span class="hl-1">│ ├── </span><span class="hl-5">common</span><span class="hl-1">-</span><span class="hl-5">licenses</span><span class="hl-1">/</span><br/><span class="hl-1">│ └── </span><span class="hl-5">zoneinfo</span><span class="hl-1">/</span><br/><span class="hl-1">│</span><br/><span class="hl-1">└── </span><span class="hl-4">var</span><span class="hl-1">/</span><br/><span class="hl-1"> ├── </span><span class="hl-5">cache</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">apt</span><span class="hl-1">/</span><span class="hl-5">archives</span><span class="hl-1">/</span><span class="hl-5">partial</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">debconf</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">fontconfig</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">ldconfig</span><span class="hl-1">/</span><br/><span class="hl-1"> │ └── </span><span class="hl-5">PackageKit</span><span class="hl-1">/</span><br/><span class="hl-1"> ├── </span><span class="hl-5">lib</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">apt</span><span class="hl-1">/</span><span class="hl-5">lists</span><span class="hl-1">/</span><span class="hl-5">partial</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">dpkg</span><span class="hl-1">/</span><br/><span class="hl-1"> │ │ ├── </span><span class="hl-5">info</span><span class="hl-1">/</span><br/><span class="hl-1"> │ │ ├── </span><span class="hl-5">updates</span><span class="hl-1">/</span><br/><span class="hl-1"> │ │ ├── </span><span class="hl-5">alternatives</span><span class="hl-1">/</span><br/><span class="hl-1"> │ │ ├── </span><span class="hl-5">available</span><br/><span class="hl-1"> │ │ └── </span><span class="hl-5">status</span><span class="hl-1"> </span><span class="hl-5">managed</span><span class="hl-1"> </span><span class="hl-5">by</span><span class="hl-1"> </span><span class="hl-5">VirtualPackageManager</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">misc</span><span class="hl-1">/</span><br/><span class="hl-1"> │ └── </span><span class="hl-5">systemd</span><span class="hl-1">/</span><br/><span class="hl-1"> ├── </span><span class="hl-5">log</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">apt</span><span class="hl-1">/</span><span class="hl-5">history</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1"> + </span><span class="hl-5">term</span><span class="hl-1">.</span><span class="hl-5">log</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">auth</span><span class="hl-1">.</span><span class="hl-5">log</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">dpkg</span><span class="hl-1">.</span><span class="hl-5">log</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">journal</span><span class="hl-1">/</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">kern</span><span class="hl-1">.</span><span class="hl-5">log</span><br/><span class="hl-1"> │ ├── </span><span class="hl-5">private</span><span class="hl-1">/</span><br/><span class="hl-1"> │ └── </span><span class="hl-5">syslog</span><br/><span class="hl-1"> ├── </span><span class="hl-5">run</span><span class="hl-1"> -&gt; /</span><span class="hl-0">run</span><span class="hl-1"> (</span><span class="hl-5">legacy</span><span class="hl-1"> </span><span class="hl-5">symlink</span><span class="hl-1">)</span><br/><span class="hl-1"> ├── </span><span class="hl-5">spool</span><span class="hl-1">/</span><span class="hl-5">cron</span><span class="hl-1">/</span><br/><span class="hl-1"> └── </span><span class="hl-5">tmp</span><span class="hl-1">/</span>
1525
1525
  </code><button>Copy</button></pre>
1526
1526
 
1527
1527
  <pre><code class="typescript"><span class="hl-5">shell</span><span class="hl-1">.</span><span class="hl-0">refreshProcFs</span><span class="hl-1">(); </span><span class="hl-3">// refresh /proc/* with current system state</span><br/><span class="hl-5">shell</span><span class="hl-1">.</span><span class="hl-0">syncPasswd</span><span class="hl-1">(); </span><span class="hl-3">// sync /etc/passwd|group|shadow from user manager</span>
@@ -1831,11 +1831,17 @@ Core operations are implemented. Extended attributes and symlinks return <code>O
1831
1831
  <li>[x] <code>/proc/self</code> and <code>/proc/&lt;pid&gt;</code> per-session entries</li>
1832
1832
  <li>[x] Snapshot diff tooling — <code>diffSnapshots</code>, <code>formatDiff</code>, <code>assertDiff</code></li>
1833
1833
  <li>[x] <code>node</code>/<code>python3</code>/<code>npm</code>/<code>npx</code> — package-gated virtual REPL stubs</li>
1834
- <li>[x] Web shell bundles (<code>web.min.js</code>, <code>web-full-api.min.js</code>) — fully browser-native with IndexedDB VFS</li>
1835
- <li>[x] Self-standalone CLI (<code>self-standalone.js</code>) — single-file interactive shell, per-user history, tab completion</li>
1834
+ </ul>
1835
+ <!-- BUILD:changelog -->
1836
+ <ul>
1837
+ <li>[x] Web shell bundles (<code>fortune-nyx-v1.5.1-web.min.js</code>, <code>fortune-nyx-v1.5.1-web-full.min.js</code>) — fully browser-native with IndexedDB VFS</li>
1838
+ <li>[x] Self-standalone CLI (<code>fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</code>) — single-file interactive shell, per-user history, tab completion</li>
1839
+ </ul>
1840
+ <!-- /BUILD:changelog -->
1841
+ <ul>
1836
1842
  <li>[x] 120+ <code>man</code> pages — all built-in commands documented via <code>man &lt;cmd&gt;</code></li>
1837
1843
  <li>[x] Shared <code>tokenize.ts</code> — unified tokenizer for shell parser and runtime (eliminates duplication)</li>
1838
1844
  <li>[x] <code>PasswordChallenge</code> type — generic interactive password flow for <code>adduser</code>, <code>passwd</code>, <code>deluser</code></li>
1839
1845
  <li>[x] <code>VirtualFileSystem.mount(vPath, hostPath, { readOnly })</code> — bind-mount host directories into the VM; read-only by default; browser-safe (silent no-op)</li>
1840
1846
  </ul>
1841
- </details></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#_"><span></span></a><ul><li><a href="#table-of-contents"><span>Table of <wbr/>Contents</span></a></li><li><a href="#three-ways-to-run"><span>Three ways to run</span></a></li><li><a href="#get-started"><span>Get <wbr/>Started</span></a></li><li><ul><li><a href="#install"><span>Install</span></a></li><li><a href="#try-instantly-zero-install"><span>Try instantly (zero install)</span></a></li><li><a href="#ssh-server"><span>SSH server</span></a></li><li><a href="#web-shell-browser"><span>Web shell (browser)</span></a></li><li><a href="#programmatic-api"><span>Programmatic <wbr/>API</span></a></li></ul></li><li><a href="#how-it-works"><span>How <wbr/>It <wbr/>Works</span></a></li><li><ul><li><a href="#_-1"><span></span></a></li><li><a href="#_-2"><span></span></a></li><li><a href="#_-3"><span></span></a></li><li><a href="#_-4"><span></span></a></li><li><ul><li><a href="#mount-api"><span>Mount <wbr/>API</span></a></li><li><a href="#vfsb-binary-format"><span>VFSB <wbr/>Binary <wbr/>Format</span></a></li></ul></li><li><a href="#_-5"><span></span></a></li><li><a href="#_-6"><span></span></a></li><li><a href="#snapshot-diff-tooling"><span>Snapshot <wbr/>Diff <wbr/>Tooling</span></a></li><li><a href="#_-7"><span></span></a></li><li><a href="#programmatic-api-1"><span> (<wbr/>Programmatic <wbr/>API)</span></a></li><li><a href="#key-types"><span>Key <wbr/>Types</span></a></li><li><a href="#command-helpers"><span>Command <wbr/>Helpers</span></a></li><li><a href="#ssh-server-with-events"><span>SSH <wbr/>Server with <wbr/>Events</span></a></li><li><a href="#ssh-sftp-with-shared-state"><span>SSH + <wbr/>SFTP with <wbr/>Shared <wbr/>State</span></a></li><li><a href="#multi-user-environment-with-quotas"><span>Multi-<wbr/>User <wbr/>Environment with <wbr/>Quotas</span></a></li><li><a href="#persistent-state"><span>Persistent <wbr/>State</span></a></li><li><a href="#public-key-authentication"><span>Public-<wbr/>Key <wbr/>Authentication</span></a></li><li><a href="#rate-limiting"><span>Rate <wbr/>Limiting</span></a></li><li><a href="#shell-operators-and-variables"><span>Shell <wbr/>Operators and <wbr/>Variables</span></a></li><li><a href="#shell-scripting"><span>Shell <wbr/>Scripting</span></a></li><li><a href="#snapshot-based-test-fixtures"><span>Snapshot-<wbr/>Based <wbr/>Test <wbr/>Fixtures</span></a></li><li><a href="#snapshot-diff-in-tests"><span>Snapshot <wbr/>Diff in <wbr/>Tests</span></a></li><li><a href="#symlinks"><span>Symlinks</span></a></li><li><a href="#security-auditing-with-honeypot"><span>Security <wbr/>Auditing with <wbr/>Honey<wbr/>Pot</span></a></li><li><a href="#concurrent-clients"><span>Concurrent <wbr/>Clients</span></a></li><li><a href="#bashrc"><span>.bashrc</span></a></li><li><a href="#navigation"><span>Navigation</span></a></li><li><a href="#files-filesystem"><span>Files &amp; <wbr/>Filesystem</span></a></li><li><a href="#text-processing"><span>Text <wbr/>Processing</span></a></li><li><a href="#archive-compression"><span>Archive &amp; <wbr/>Compression</span></a></li><li><a href="#system"><span>System</span></a></li><li><a href="#network"><span>Network</span></a></li><li><a href="#shell-scripting-1"><span>Shell &amp; <wbr/>Scripting</span></a></li><li><a href="#package-management"><span>Package <wbr/>Management</span></a></li><li><a href="#users-permissions"><span>Users &amp; <wbr/>Permissions</span></a></li><li><a href="#operators-and-redirections"><span>Operators and <wbr/>Redirections</span></a></li><li><a href="#variable-expansion"><span>Variable <wbr/>Expansion</span></a></li><li><a href="#arithmetic"><span>Arithmetic</span></a></li><li><a href="#conditionals"><span>Conditionals</span></a></li><li><a href="#loops"><span>Loops</span></a></li><li><a href="#functions-and-case"><span>Functions and case</span></a></li><li><a href="#script-files"><span>Script <wbr/>Files</span></a></li><li><a href="#bashrc-1"><span>.bashrc</span></a></li><li><a href="#directory-layout"><span>Directory <wbr/>Layout</span></a></li><li><a href="#vfs-path-resolution"><span>VFS <wbr/>PATH <wbr/>Resolution</span></a></li><li><a href="#built-in-package-registry-25-packages"><span>Built-<wbr/>in <wbr/>Package <wbr/>Registry (25 packages)</span></a></li><li><a href="#environment-variables"><span>Environment <wbr/>Variables</span></a></li><li><a href="#constructor-options"><span>Constructor <wbr/>Options</span></a></li></ul></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li><li><a href="#faq"><span>FAQ</span></a></li><li><a href="#contributing"><span>Contributing</span></a></li><li><a href="#security"><span>Security</span></a></li><li><a href="#compatibility"><span>Compatibility</span></a></li><li><a href="#license"><span>License</span></a></li><li><a href="#roadmap"><span>Roadmap</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">typescript-virtual-container - v1.4.9</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
1847
+ </details></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#_"><span></span></a><ul><li><a href="#table-of-contents"><span>Table of <wbr/>Contents</span></a></li><li><a href="#three-ways-to-run"><span>Three ways to run</span></a></li><li><a href="#get-started"><span>Get <wbr/>Started</span></a></li><li><ul><li><a href="#install"><span>Install</span></a></li><li><a href="#try-instantly-zero-install"><span>Try instantly (zero install)</span></a></li><li><a href="#ssh-server"><span>SSH server</span></a></li><li><a href="#web-shell-browser"><span>Web shell (browser)</span></a></li><li><a href="#programmatic-api"><span>Programmatic <wbr/>API</span></a></li></ul></li><li><a href="#how-it-works"><span>How <wbr/>It <wbr/>Works</span></a></li><li><ul><li><a href="#_-1"><span></span></a></li><li><a href="#_-2"><span></span></a></li><li><a href="#_-3"><span></span></a></li><li><a href="#_-4"><span></span></a></li><li><ul><li><a href="#mount-api"><span>Mount <wbr/>API</span></a></li><li><a href="#vfsb-binary-format"><span>VFSB <wbr/>Binary <wbr/>Format</span></a></li></ul></li><li><a href="#_-5"><span></span></a></li><li><a href="#_-6"><span></span></a></li><li><a href="#snapshot-diff-tooling"><span>Snapshot <wbr/>Diff <wbr/>Tooling</span></a></li><li><a href="#_-7"><span></span></a></li><li><a href="#programmatic-api-1"><span> (<wbr/>Programmatic <wbr/>API)</span></a></li><li><a href="#key-types"><span>Key <wbr/>Types</span></a></li><li><a href="#command-helpers"><span>Command <wbr/>Helpers</span></a></li><li><a href="#ssh-server-with-events"><span>SSH <wbr/>Server with <wbr/>Events</span></a></li><li><a href="#ssh-sftp-with-shared-state"><span>SSH + <wbr/>SFTP with <wbr/>Shared <wbr/>State</span></a></li><li><a href="#multi-user-environment-with-quotas"><span>Multi-<wbr/>User <wbr/>Environment with <wbr/>Quotas</span></a></li><li><a href="#persistent-state"><span>Persistent <wbr/>State</span></a></li><li><a href="#public-key-authentication"><span>Public-<wbr/>Key <wbr/>Authentication</span></a></li><li><a href="#rate-limiting"><span>Rate <wbr/>Limiting</span></a></li><li><a href="#shell-operators-and-variables"><span>Shell <wbr/>Operators and <wbr/>Variables</span></a></li><li><a href="#shell-scripting"><span>Shell <wbr/>Scripting</span></a></li><li><a href="#snapshot-based-test-fixtures"><span>Snapshot-<wbr/>Based <wbr/>Test <wbr/>Fixtures</span></a></li><li><a href="#snapshot-diff-in-tests"><span>Snapshot <wbr/>Diff in <wbr/>Tests</span></a></li><li><a href="#symlinks"><span>Symlinks</span></a></li><li><a href="#security-auditing-with-honeypot"><span>Security <wbr/>Auditing with <wbr/>Honey<wbr/>Pot</span></a></li><li><a href="#concurrent-clients"><span>Concurrent <wbr/>Clients</span></a></li><li><a href="#bashrc"><span>.bashrc</span></a></li><li><a href="#navigation"><span>Navigation</span></a></li><li><a href="#files-filesystem"><span>Files &amp; <wbr/>Filesystem</span></a></li><li><a href="#text-processing"><span>Text <wbr/>Processing</span></a></li><li><a href="#archive-compression"><span>Archive &amp; <wbr/>Compression</span></a></li><li><a href="#system"><span>System</span></a></li><li><a href="#network"><span>Network</span></a></li><li><a href="#shell-scripting-1"><span>Shell &amp; <wbr/>Scripting</span></a></li><li><a href="#package-management"><span>Package <wbr/>Management</span></a></li><li><a href="#users-permissions"><span>Users &amp; <wbr/>Permissions</span></a></li><li><a href="#operators-and-redirections"><span>Operators and <wbr/>Redirections</span></a></li><li><a href="#variable-expansion"><span>Variable <wbr/>Expansion</span></a></li><li><a href="#arithmetic"><span>Arithmetic</span></a></li><li><a href="#conditionals"><span>Conditionals</span></a></li><li><a href="#loops"><span>Loops</span></a></li><li><a href="#functions-and-case"><span>Functions and case</span></a></li><li><a href="#script-files"><span>Script <wbr/>Files</span></a></li><li><a href="#bashrc-1"><span>.bashrc</span></a></li><li><a href="#directory-layout"><span>Directory <wbr/>Layout</span></a></li><li><a href="#vfs-path-resolution"><span>VFS <wbr/>PATH <wbr/>Resolution</span></a></li><li><a href="#built-in-package-registry-25-packages"><span>Built-<wbr/>in <wbr/>Package <wbr/>Registry (25 packages)</span></a></li><li><a href="#environment-variables"><span>Environment <wbr/>Variables</span></a></li><li><a href="#constructor-options"><span>Constructor <wbr/>Options</span></a></li></ul></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li><li><a href="#faq"><span>FAQ</span></a></li><li><a href="#contributing"><span>Contributing</span></a></li><li><a href="#security"><span>Security</span></a></li><li><a href="#compatibility"><span>Compatibility</span></a></li><li><a href="#license"><span>License</span></a></li><li><a href="#roadmap"><span>Roadmap</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">typescript-virtual-container - v1.5.1</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>