@fredlackey/devutils 0.0.18 → 0.0.19

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 (331) hide show
  1. package/README.md +32 -150
  2. package/package.json +5 -82
  3. package/bin/dev.js +0 -16
  4. package/files/README.md +0 -0
  5. package/files/claude/.claude/commands/setup-context.md +0 -3
  6. package/files/monorepos/_archive/README.md +0 -36
  7. package/files/monorepos/_legacy/README.md +0 -36
  8. package/files/monorepos/ai-docs/README.md +0 -33
  9. package/files/monorepos/apps/README.md +0 -24
  10. package/files/monorepos/docs/README.md +0 -40
  11. package/files/monorepos/packages/README.md +0 -25
  12. package/files/monorepos/research/README.md +0 -29
  13. package/files/monorepos/scripts/README.md +0 -24
  14. package/src/cli.js +0 -72
  15. package/src/commands/README.md +0 -41
  16. package/src/commands/configure.js +0 -199
  17. package/src/commands/identity.js +0 -1630
  18. package/src/commands/ignore.js +0 -247
  19. package/src/commands/install.js +0 -526
  20. package/src/commands/setup.js +0 -246
  21. package/src/commands/status.js +0 -223
  22. package/src/commands/update.js +0 -142
  23. package/src/commands/version.js +0 -100
  24. package/src/completion.js +0 -284
  25. package/src/constants.js +0 -45
  26. package/src/ignore/claude-code.txt +0 -10
  27. package/src/ignore/docker.txt +0 -18
  28. package/src/ignore/linux.txt +0 -23
  29. package/src/ignore/macos.txt +0 -36
  30. package/src/ignore/node.txt +0 -55
  31. package/src/ignore/terraform.txt +0 -37
  32. package/src/ignore/vscode.txt +0 -18
  33. package/src/ignore/windows.txt +0 -35
  34. package/src/index.js +0 -0
  35. package/src/installs/README.md +0 -399
  36. package/src/installs/adobe-creative-cloud.js +0 -546
  37. package/src/installs/adobe-creative-cloud.md +0 -605
  38. package/src/installs/appcleaner.js +0 -321
  39. package/src/installs/appcleaner.md +0 -699
  40. package/src/installs/apt-transport-https.js +0 -390
  41. package/src/installs/apt-transport-https.md +0 -678
  42. package/src/installs/atomicparsley.js +0 -642
  43. package/src/installs/atomicparsley.md +0 -795
  44. package/src/installs/aws-cli.js +0 -797
  45. package/src/installs/aws-cli.md +0 -727
  46. package/src/installs/balena-etcher.js +0 -710
  47. package/src/installs/balena-etcher.md +0 -761
  48. package/src/installs/bambu-studio.js +0 -1143
  49. package/src/installs/bambu-studio.md +0 -780
  50. package/src/installs/bash-completion.js +0 -575
  51. package/src/installs/bash-completion.md +0 -833
  52. package/src/installs/bash.js +0 -417
  53. package/src/installs/bash.md +0 -993
  54. package/src/installs/beyond-compare.js +0 -603
  55. package/src/installs/beyond-compare.md +0 -813
  56. package/src/installs/brave-browser.js +0 -968
  57. package/src/installs/brave-browser.md +0 -650
  58. package/src/installs/build-essential.js +0 -529
  59. package/src/installs/build-essential.md +0 -977
  60. package/src/installs/ca-certificates.js +0 -618
  61. package/src/installs/ca-certificates.md +0 -937
  62. package/src/installs/caffeine.js +0 -508
  63. package/src/installs/caffeine.md +0 -839
  64. package/src/installs/camtasia.js +0 -596
  65. package/src/installs/camtasia.md +0 -762
  66. package/src/installs/chatgpt.js +0 -476
  67. package/src/installs/chatgpt.md +0 -814
  68. package/src/installs/chocolatey.js +0 -456
  69. package/src/installs/chocolatey.md +0 -661
  70. package/src/installs/chrome-canary.js +0 -419
  71. package/src/installs/chrome-canary.md +0 -641
  72. package/src/installs/chromium.js +0 -667
  73. package/src/installs/chromium.md +0 -838
  74. package/src/installs/claude-code.js +0 -576
  75. package/src/installs/claude-code.md +0 -1173
  76. package/src/installs/cloudflare-warp.js +0 -900
  77. package/src/installs/cloudflare-warp.md +0 -1047
  78. package/src/installs/comet-browser.js +0 -588
  79. package/src/installs/comet-browser.md +0 -731
  80. package/src/installs/curl.js +0 -379
  81. package/src/installs/curl.md +0 -714
  82. package/src/installs/cursor.js +0 -579
  83. package/src/installs/cursor.md +0 -970
  84. package/src/installs/dbeaver.js +0 -924
  85. package/src/installs/dbeaver.md +0 -939
  86. package/src/installs/dbschema.js +0 -692
  87. package/src/installs/dbschema.md +0 -925
  88. package/src/installs/dependencies.md +0 -453
  89. package/src/installs/development-tools.js +0 -600
  90. package/src/installs/development-tools.md +0 -977
  91. package/src/installs/docker.js +0 -1029
  92. package/src/installs/docker.md +0 -1109
  93. package/src/installs/drawio.js +0 -1019
  94. package/src/installs/drawio.md +0 -795
  95. package/src/installs/elmedia-player.js +0 -347
  96. package/src/installs/elmedia-player.md +0 -556
  97. package/src/installs/ffmpeg.js +0 -889
  98. package/src/installs/ffmpeg.md +0 -852
  99. package/src/installs/file.js +0 -464
  100. package/src/installs/file.md +0 -987
  101. package/src/installs/gemini-cli.js +0 -811
  102. package/src/installs/gemini-cli.md +0 -1153
  103. package/src/installs/git.js +0 -400
  104. package/src/installs/git.md +0 -907
  105. package/src/installs/gitego.js +0 -949
  106. package/src/installs/gitego.md +0 -1172
  107. package/src/installs/go.js +0 -931
  108. package/src/installs/go.md +0 -958
  109. package/src/installs/google-antigravity.js +0 -913
  110. package/src/installs/google-antigravity.md +0 -1075
  111. package/src/installs/google-chrome.js +0 -833
  112. package/src/installs/google-chrome.md +0 -862
  113. package/src/installs/gpg.js +0 -480
  114. package/src/installs/gpg.md +0 -1056
  115. package/src/installs/homebrew.js +0 -1028
  116. package/src/installs/homebrew.md +0 -988
  117. package/src/installs/imageoptim.js +0 -968
  118. package/src/installs/imageoptim.md +0 -1119
  119. package/src/installs/installers.json +0 -4032
  120. package/src/installs/installers.json.tmp +0 -3953
  121. package/src/installs/jq.js +0 -400
  122. package/src/installs/jq.md +0 -809
  123. package/src/installs/keyboard-maestro.js +0 -719
  124. package/src/installs/keyboard-maestro.md +0 -825
  125. package/src/installs/kiro.js +0 -864
  126. package/src/installs/kiro.md +0 -1015
  127. package/src/installs/latex.js +0 -789
  128. package/src/installs/latex.md +0 -1095
  129. package/src/installs/lftp.js +0 -356
  130. package/src/installs/lftp.md +0 -907
  131. package/src/installs/lsb-release.js +0 -346
  132. package/src/installs/lsb-release.md +0 -814
  133. package/src/installs/messenger.js +0 -847
  134. package/src/installs/messenger.md +0 -900
  135. package/src/installs/microsoft-office.js +0 -568
  136. package/src/installs/microsoft-office.md +0 -760
  137. package/src/installs/microsoft-teams.js +0 -801
  138. package/src/installs/microsoft-teams.md +0 -886
  139. package/src/installs/moom.js +0 -326
  140. package/src/installs/moom.md +0 -570
  141. package/src/installs/node.js +0 -904
  142. package/src/installs/node.md +0 -1153
  143. package/src/installs/nordpass.js +0 -716
  144. package/src/installs/nordpass.md +0 -921
  145. package/src/installs/nordvpn.js +0 -892
  146. package/src/installs/nordvpn.md +0 -1052
  147. package/src/installs/nvm.js +0 -995
  148. package/src/installs/nvm.md +0 -1057
  149. package/src/installs/ohmyzsh.js +0 -529
  150. package/src/installs/ohmyzsh.md +0 -1094
  151. package/src/installs/openssh.js +0 -804
  152. package/src/installs/openssh.md +0 -1056
  153. package/src/installs/pandoc.js +0 -662
  154. package/src/installs/pandoc.md +0 -1036
  155. package/src/installs/parallels-desktop.js +0 -431
  156. package/src/installs/parallels-desktop.md +0 -446
  157. package/src/installs/pinentry.js +0 -510
  158. package/src/installs/pinentry.md +0 -1142
  159. package/src/installs/pngyu.js +0 -869
  160. package/src/installs/pngyu.md +0 -896
  161. package/src/installs/postman.js +0 -799
  162. package/src/installs/postman.md +0 -940
  163. package/src/installs/procps.js +0 -425
  164. package/src/installs/procps.md +0 -851
  165. package/src/installs/safari-tech-preview.js +0 -374
  166. package/src/installs/safari-tech-preview.md +0 -533
  167. package/src/installs/sfnt2woff.js +0 -658
  168. package/src/installs/sfnt2woff.md +0 -795
  169. package/src/installs/shellcheck.js +0 -481
  170. package/src/installs/shellcheck.md +0 -1005
  171. package/src/installs/slack.js +0 -741
  172. package/src/installs/slack.md +0 -865
  173. package/src/installs/snagit.js +0 -585
  174. package/src/installs/snagit.md +0 -844
  175. package/src/installs/software-properties-common.js +0 -372
  176. package/src/installs/software-properties-common.md +0 -805
  177. package/src/installs/spotify.js +0 -877
  178. package/src/installs/spotify.md +0 -901
  179. package/src/installs/studio-3t.js +0 -823
  180. package/src/installs/studio-3t.md +0 -918
  181. package/src/installs/sublime-text.js +0 -804
  182. package/src/installs/sublime-text.md +0 -914
  183. package/src/installs/superwhisper.js +0 -706
  184. package/src/installs/superwhisper.md +0 -630
  185. package/src/installs/tailscale.js +0 -745
  186. package/src/installs/tailscale.md +0 -1100
  187. package/src/installs/tar.js +0 -389
  188. package/src/installs/tar.md +0 -946
  189. package/src/installs/termius.js +0 -798
  190. package/src/installs/termius.md +0 -844
  191. package/src/installs/terraform.js +0 -779
  192. package/src/installs/terraform.md +0 -899
  193. package/src/installs/tfenv.js +0 -778
  194. package/src/installs/tfenv.md +0 -1091
  195. package/src/installs/tidal.js +0 -771
  196. package/src/installs/tidal.md +0 -864
  197. package/src/installs/tmux.js +0 -346
  198. package/src/installs/tmux.md +0 -1030
  199. package/src/installs/tree.js +0 -411
  200. package/src/installs/tree.md +0 -833
  201. package/src/installs/unzip.js +0 -460
  202. package/src/installs/unzip.md +0 -879
  203. package/src/installs/vim.js +0 -421
  204. package/src/installs/vim.md +0 -1040
  205. package/src/installs/vlc.js +0 -821
  206. package/src/installs/vlc.md +0 -927
  207. package/src/installs/vscode.js +0 -843
  208. package/src/installs/vscode.md +0 -1002
  209. package/src/installs/wget.js +0 -420
  210. package/src/installs/wget.md +0 -791
  211. package/src/installs/whatsapp.js +0 -729
  212. package/src/installs/whatsapp.md +0 -854
  213. package/src/installs/winpty.js +0 -352
  214. package/src/installs/winpty.md +0 -620
  215. package/src/installs/woff2.js +0 -553
  216. package/src/installs/woff2.md +0 -977
  217. package/src/installs/wsl.js +0 -572
  218. package/src/installs/wsl.md +0 -699
  219. package/src/installs/xcode-clt.js +0 -520
  220. package/src/installs/xcode-clt.md +0 -351
  221. package/src/installs/xcode.js +0 -560
  222. package/src/installs/xcode.md +0 -573
  223. package/src/installs/yarn.js +0 -824
  224. package/src/installs/yarn.md +0 -1074
  225. package/src/installs/yq.js +0 -654
  226. package/src/installs/yq.md +0 -944
  227. package/src/installs/yt-dlp.js +0 -701
  228. package/src/installs/yt-dlp.md +0 -946
  229. package/src/installs/yum-utils.js +0 -297
  230. package/src/installs/yum-utils.md +0 -648
  231. package/src/installs/zoom.js +0 -759
  232. package/src/installs/zoom.md +0 -884
  233. package/src/installs/zsh.js +0 -455
  234. package/src/installs/zsh.md +0 -1008
  235. package/src/scripts/README.md +0 -617
  236. package/src/scripts/STATUS.md +0 -208
  237. package/src/scripts/afk.js +0 -411
  238. package/src/scripts/backup-all.js +0 -746
  239. package/src/scripts/backup-source.js +0 -727
  240. package/src/scripts/brewd.js +0 -389
  241. package/src/scripts/brewi.js +0 -520
  242. package/src/scripts/brewr.js +0 -527
  243. package/src/scripts/brews.js +0 -477
  244. package/src/scripts/brewu.js +0 -504
  245. package/src/scripts/c.js +0 -201
  246. package/src/scripts/ccurl.js +0 -341
  247. package/src/scripts/certbot-crontab-init.js +0 -504
  248. package/src/scripts/certbot-init.js +0 -657
  249. package/src/scripts/ch.js +0 -355
  250. package/src/scripts/claude-danger.js +0 -268
  251. package/src/scripts/clean-dev.js +0 -435
  252. package/src/scripts/clear-dns-cache.js +0 -541
  253. package/src/scripts/clone.js +0 -435
  254. package/src/scripts/code-all.js +0 -437
  255. package/src/scripts/count-files.js +0 -211
  256. package/src/scripts/count-folders.js +0 -211
  257. package/src/scripts/count.js +0 -264
  258. package/src/scripts/d.js +0 -219
  259. package/src/scripts/datauri.js +0 -389
  260. package/src/scripts/delete-files.js +0 -380
  261. package/src/scripts/docker-clean.js +0 -426
  262. package/src/scripts/dp.js +0 -442
  263. package/src/scripts/e.js +0 -390
  264. package/src/scripts/empty-trash.js +0 -513
  265. package/src/scripts/evm.js +0 -444
  266. package/src/scripts/fetch-github-repos.js +0 -456
  267. package/src/scripts/get-channel.js +0 -345
  268. package/src/scripts/get-course.js +0 -399
  269. package/src/scripts/get-dependencies.js +0 -306
  270. package/src/scripts/get-folder.js +0 -799
  271. package/src/scripts/get-tunes.js +0 -426
  272. package/src/scripts/get-video.js +0 -367
  273. package/src/scripts/git-backup.js +0 -577
  274. package/src/scripts/git-clone.js +0 -493
  275. package/src/scripts/git-pup.js +0 -319
  276. package/src/scripts/git-push.js +0 -396
  277. package/src/scripts/h.js +0 -622
  278. package/src/scripts/hide-desktop-icons.js +0 -499
  279. package/src/scripts/hide-hidden-files.js +0 -538
  280. package/src/scripts/install-dependencies-from.js +0 -456
  281. package/src/scripts/ips.js +0 -663
  282. package/src/scripts/iso.js +0 -370
  283. package/src/scripts/killni.js +0 -577
  284. package/src/scripts/ll.js +0 -467
  285. package/src/scripts/local-ip.js +0 -325
  286. package/src/scripts/m.js +0 -524
  287. package/src/scripts/map.js +0 -309
  288. package/src/scripts/mkd.js +0 -351
  289. package/src/scripts/ncu-update-all.js +0 -457
  290. package/src/scripts/nginx-init.js +0 -718
  291. package/src/scripts/npmi.js +0 -382
  292. package/src/scripts/o.js +0 -511
  293. package/src/scripts/org-by-date.js +0 -338
  294. package/src/scripts/p.js +0 -224
  295. package/src/scripts/packages.js +0 -330
  296. package/src/scripts/path.js +0 -225
  297. package/src/scripts/ports.js +0 -597
  298. package/src/scripts/q.js +0 -305
  299. package/src/scripts/refresh-files.js +0 -394
  300. package/src/scripts/remove-smaller-files.js +0 -516
  301. package/src/scripts/rename-files-with-date.js +0 -533
  302. package/src/scripts/resize-image.js +0 -539
  303. package/src/scripts/rm-safe.js +0 -669
  304. package/src/scripts/s.js +0 -540
  305. package/src/scripts/set-git-public.js +0 -365
  306. package/src/scripts/show-desktop-icons.js +0 -475
  307. package/src/scripts/show-hidden-files.js +0 -472
  308. package/src/scripts/tpa.js +0 -280
  309. package/src/scripts/tpo.js +0 -280
  310. package/src/scripts/u.js +0 -505
  311. package/src/scripts/vpush.js +0 -437
  312. package/src/scripts/y.js +0 -283
  313. package/src/utils/README.md +0 -95
  314. package/src/utils/common/apps.js +0 -143
  315. package/src/utils/common/display.js +0 -157
  316. package/src/utils/common/network.js +0 -185
  317. package/src/utils/common/os.js +0 -294
  318. package/src/utils/common/package-manager.js +0 -301
  319. package/src/utils/common/privileges.js +0 -138
  320. package/src/utils/common/shell.js +0 -261
  321. package/src/utils/macos/apps.js +0 -228
  322. package/src/utils/macos/brew.js +0 -315
  323. package/src/utils/ubuntu/apt.js +0 -307
  324. package/src/utils/ubuntu/desktop.js +0 -292
  325. package/src/utils/ubuntu/snap.js +0 -344
  326. package/src/utils/ubuntu/systemd.js +0 -286
  327. package/src/utils/windows/choco.js +0 -465
  328. package/src/utils/windows/env.js +0 -246
  329. package/src/utils/windows/registry.js +0 -269
  330. package/src/utils/windows/shell.js +0 -240
  331. package/src/utils/windows/winget.js +0 -489
@@ -1,833 +0,0 @@
1
- # Installing Bash Completion 2
2
-
3
- ## Dependencies
4
-
5
- ### macOS (Homebrew)
6
- - **Required:**
7
- - Homebrew package manager - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or run `dev install homebrew`
8
- - Bash 4.2 or later - Install via `brew install bash` (macOS ships with Bash 3.2 which is incompatible)
9
- - **Optional:** None
10
- - **Auto-installed:** None
11
-
12
- ### Ubuntu (APT/Snap)
13
- - **Required:**
14
- - APT package manager (built-in on Ubuntu/Debian systems)
15
- - Bash 4.2 or later (typically pre-installed on modern Ubuntu/Debian)
16
- - **Optional:** None
17
- - **Auto-installed:** All runtime dependencies are handled automatically by APT
18
-
19
- ### Raspberry Pi OS (APT/Snap)
20
- - **Required:**
21
- - APT package manager (built-in on Raspberry Pi OS)
22
- - Bash 4.2 or later (typically pre-installed on Raspberry Pi OS)
23
- - **Optional:** None
24
- - **Auto-installed:** All runtime dependencies are handled automatically by APT
25
-
26
- ### Amazon Linux (DNF/YUM)
27
- - **Required:**
28
- - DNF (Amazon Linux 2023) or YUM (Amazon Linux 2) package manager (built-in)
29
- - rpm command for verification (built-in)
30
- - Bash 4.2 or later (typically pre-installed on Amazon Linux)
31
- - **Optional:** None
32
- - **Auto-installed:** All runtime dependencies are handled automatically by DNF/YUM
33
-
34
- ### Windows (Chocolatey/winget)
35
- - **Required:** None (bash-completion is not natively supported on Windows)
36
- - **Optional:**
37
- - Clink (for Bash-style line editing in cmd.exe) - Install via `choco install clink -y` (Note: This is NOT the same as bash-completion)
38
- - **Auto-installed:** None
39
- - **Note:** For actual bash-completion support on Windows, use WSL (see WSL section) or Git Bash (see Git Bash section)
40
-
41
- ### Git Bash (Manual/Portable)
42
- - **Required:**
43
- - Git for Windows (includes Git Bash/MINGW64 environment) - Download from https://git-scm.com/download/win
44
- - curl command (included with Git for Windows) for downloading completion scripts
45
- - **Optional:** None
46
- - **Auto-installed:** Git completion scripts are typically bundled with Git for Windows installation
47
- - **Note:** Git Bash provides limited bash-completion support. For full functionality, use WSL instead.
48
-
49
- ## Overview
50
-
51
- Bash Completion (bash-completion) is a collection of shell functions that take advantage of the programmable completion feature of Bash. It provides intelligent auto-completion for commands, file paths, options, and arguments when you press the Tab key. Version 2 (bash-completion@2) is designed for Bash 4.2 and later, offering improved performance and more comprehensive completion support compared to version 1.
52
-
53
- Key benefits include:
54
- - Faster command entry through Tab-triggered auto-completion
55
- - Reduced typing errors by suggesting valid options and arguments
56
- - Discovery of command options without consulting documentation
57
- - Support for hundreds of common commands out of the box
58
-
59
- ## Prerequisites
60
-
61
- Before installing bash-completion on any platform, ensure:
62
-
63
- 1. **Bash 4.2 or later** - Version 2 of bash-completion requires Bash 4.2+. Check your version with `bash --version`.
64
- 2. **Terminal access** - You need access to a terminal or command-line interface.
65
- 3. **Administrative privileges** - Required on most platforms for system-wide installation.
66
-
67
- **Important**: bash-completion version 1 and version 2 conflict with each other. If you have version 1 installed, remove it before installing version 2.
68
-
69
- ## Platform-Specific Installation
70
-
71
- ### macOS (Homebrew)
72
-
73
- #### Prerequisites
74
-
75
- - macOS 11 (Big Sur) or later
76
- - Homebrew package manager installed
77
- - Bash 4.2 or later installed (macOS ships with Bash 3.2 by default)
78
-
79
- If Homebrew is not installed, install it first:
80
-
81
- ```bash
82
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
83
- ```
84
-
85
- **Critical**: macOS ships with Bash 3.2 (from 2007) due to licensing. You must install a modern version of Bash before using bash-completion@2:
86
-
87
- ```bash
88
- brew install --quiet bash
89
- ```
90
-
91
- Add the new Bash to allowed shells and set it as default:
92
-
93
- ```bash
94
- echo '/opt/homebrew/bin/bash' | sudo tee -a /etc/shells
95
- chsh -s /opt/homebrew/bin/bash
96
- ```
97
-
98
- #### Installation Steps
99
-
100
- Run the following command to install bash-completion@2:
101
-
102
- ```bash
103
- brew install --quiet bash-completion@2
104
- ```
105
-
106
- The `--quiet` flag suppresses non-essential output, making the command suitable for automation scripts.
107
-
108
- #### Configuration
109
-
110
- After installation, you must configure your shell to load bash-completion. Add the following to your `~/.bash_profile`:
111
-
112
- ```bash
113
- # Enable bash-completion@2
114
- [[ -r "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh" ]] && . "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh"
115
- ```
116
-
117
- For Intel Macs, `HOMEBREW_PREFIX` is `/usr/local`. For Apple Silicon Macs (M1/M2/M3/M4), it is `/opt/homebrew`. If `HOMEBREW_PREFIX` is not set in your environment, use the explicit path:
118
-
119
- For Apple Silicon:
120
- ```bash
121
- [[ -r "/opt/homebrew/etc/profile.d/bash_completion.sh" ]] && . "/opt/homebrew/etc/profile.d/bash_completion.sh"
122
- ```
123
-
124
- For Intel:
125
- ```bash
126
- [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
127
- ```
128
-
129
- Apply the changes:
130
-
131
- ```bash
132
- source ~/.bash_profile
133
- ```
134
-
135
- #### Verification
136
-
137
- Confirm the installation succeeded:
138
-
139
- ```bash
140
- type _init_completion
141
- ```
142
-
143
- Expected output:
144
-
145
- ```
146
- _init_completion is a function
147
- ```
148
-
149
- Test completion by typing `git ` followed by pressing Tab twice. You should see a list of Git subcommands.
150
-
151
- #### Troubleshooting
152
-
153
- **Problem**: `bash: _init_completion: command not found`
154
-
155
- **Solution**: The completion script is not being sourced. Verify the path exists and add the source line to `~/.bash_profile`:
156
-
157
- ```bash
158
- ls -la "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh"
159
- ```
160
-
161
- **Problem**: Completion not working despite configuration
162
-
163
- **Solution**: Ensure you are running Bash 4.2+ and not the system default Bash 3.2:
164
-
165
- ```bash
166
- echo $BASH_VERSION
167
- ```
168
-
169
- If it shows 3.x, restart your terminal or ensure the new Bash is your default shell.
170
-
171
- **Problem**: Conflicts with bash-completion version 1
172
-
173
- **Solution**: Uninstall version 1 first:
174
-
175
- ```bash
176
- brew uninstall bash-completion
177
- brew install --quiet bash-completion@2
178
- ```
179
-
180
- ---
181
-
182
- ### Ubuntu/Debian (APT)
183
-
184
- #### Prerequisites
185
-
186
- - Ubuntu 18.04 or later, or Debian 10 or later (64-bit)
187
- - sudo privileges
188
- - Bash 4.2 or later (default on modern Ubuntu/Debian)
189
-
190
- **Note**: On Ubuntu/Debian, the APT package `bash-completion` provides version 2.x functionality. The `@2` version suffix is specific to Homebrew on macOS.
191
-
192
- #### Installation Steps
193
-
194
- Run the following commands to install bash-completion:
195
-
196
- ```bash
197
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
198
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y bash-completion
199
- ```
200
-
201
- The `DEBIAN_FRONTEND=noninteractive` and `-y` flags ensure fully non-interactive installation suitable for scripts and automation.
202
-
203
- #### Configuration
204
-
205
- Ubuntu and Debian typically enable bash-completion by default. The installer places a script at `/etc/profile.d/bash_completion.sh` that is automatically sourced for login shells.
206
-
207
- Verify that `/etc/bash.bashrc` or `~/.bashrc` contains the completion loading logic:
208
-
209
- ```bash
210
- grep -q bash_completion /etc/bash.bashrc && echo "System-wide completion configured" || echo "Check configuration"
211
- ```
212
-
213
- If completion is not enabled, add the following to your `~/.bashrc`:
214
-
215
- ```bash
216
- # Enable bash-completion
217
- if ! shopt -oq posix; then
218
- if [ -f /usr/share/bash-completion/bash_completion ]; then
219
- . /usr/share/bash-completion/bash_completion
220
- elif [ -f /etc/bash_completion ]; then
221
- . /etc/bash_completion
222
- fi
223
- fi
224
- ```
225
-
226
- Apply changes:
227
-
228
- ```bash
229
- source ~/.bashrc
230
- ```
231
-
232
- #### Verification
233
-
234
- Confirm the installation succeeded:
235
-
236
- ```bash
237
- type _init_completion
238
- ```
239
-
240
- Expected output:
241
-
242
- ```
243
- _init_completion is a function
244
- ```
245
-
246
- Check the installed version:
247
-
248
- ```bash
249
- apt show bash-completion 2>/dev/null | grep Version
250
- ```
251
-
252
- Expected output (version may vary):
253
-
254
- ```
255
- Version: 1:2.11-8
256
- ```
257
-
258
- #### Troubleshooting
259
-
260
- **Problem**: Completion not working after installation
261
-
262
- **Solution**: Source the completion script manually or restart your terminal:
263
-
264
- ```bash
265
- source /etc/profile.d/bash_completion.sh
266
- ```
267
-
268
- **Problem**: `apt show bash-completion` returns "N: Unable to locate package"
269
-
270
- **Solution**: Update the package list:
271
-
272
- ```bash
273
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
274
- ```
275
-
276
- **Problem**: Tab completion works for some commands but not others
277
-
278
- **Solution**: Individual command completions are stored in `/usr/share/bash-completion/completions/`. Check if the completion file exists for your command:
279
-
280
- ```bash
281
- ls /usr/share/bash-completion/completions/
282
- ```
283
-
284
- ---
285
-
286
- ### Raspberry Pi OS (APT)
287
-
288
- #### Prerequisites
289
-
290
- - Raspberry Pi OS (32-bit or 64-bit)
291
- - Raspberry Pi 3, 4, 5, or Zero 2 W (any model with sufficient resources)
292
- - sudo privileges
293
- - Bash 4.2 or later (default on Raspberry Pi OS)
294
-
295
- **Note**: Raspberry Pi OS is based on Debian, so the installation process is nearly identical to Ubuntu/Debian.
296
-
297
- #### Installation Steps
298
-
299
- Run the following commands to install bash-completion:
300
-
301
- ```bash
302
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
303
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y bash-completion
304
- ```
305
-
306
- #### Configuration
307
-
308
- Raspberry Pi OS typically enables bash-completion by default after installation. Verify the configuration exists in `/etc/bash.bashrc`:
309
-
310
- ```bash
311
- grep -q bash_completion /etc/bash.bashrc && echo "System-wide completion configured" || echo "Check configuration"
312
- ```
313
-
314
- If completion is not enabled, add the following to your `~/.bashrc`:
315
-
316
- ```bash
317
- # Enable bash-completion
318
- if ! shopt -oq posix; then
319
- if [ -f /usr/share/bash-completion/bash_completion ]; then
320
- . /usr/share/bash-completion/bash_completion
321
- elif [ -f /etc/bash_completion ]; then
322
- . /etc/bash_completion
323
- fi
324
- fi
325
- ```
326
-
327
- Apply changes:
328
-
329
- ```bash
330
- source ~/.bashrc
331
- ```
332
-
333
- #### Verification
334
-
335
- Confirm the installation succeeded:
336
-
337
- ```bash
338
- type _init_completion
339
- ```
340
-
341
- Expected output:
342
-
343
- ```
344
- _init_completion is a function
345
- ```
346
-
347
- Test ARM-specific functionality by ensuring completions work:
348
-
349
- ```bash
350
- # Type 'sudo apt-get install ' and press Tab twice
351
- # You should see package name suggestions
352
- ```
353
-
354
- #### Troubleshooting
355
-
356
- **Problem**: Installation is slow or times out
357
-
358
- **Solution**: Raspberry Pi may have limited bandwidth. Use a wired ethernet connection or wait for the download to complete. Avoid interrupting the installation.
359
-
360
- **Problem**: Completion not working after reboot
361
-
362
- **Solution**: Ensure `~/.bashrc` is sourced by `~/.bash_profile`. Add to `~/.bash_profile` if needed:
363
-
364
- ```bash
365
- if [ -f ~/.bashrc ]; then
366
- . ~/.bashrc
367
- fi
368
- ```
369
-
370
- **Problem**: Completion works for user but not for root
371
-
372
- **Solution**: Root may have a different shell configuration. Source completion in root's profile:
373
-
374
- ```bash
375
- sudo bash -c 'echo "source /etc/profile.d/bash_completion.sh" >> /root/.bashrc'
376
- ```
377
-
378
- ---
379
-
380
- ### Amazon Linux (DNF/YUM)
381
-
382
- #### Prerequisites
383
-
384
- - Amazon Linux 2023 (uses DNF) or Amazon Linux 2 (uses YUM)
385
- - sudo privileges
386
- - Bash 4.2 or later (default on Amazon Linux)
387
-
388
- #### Installation Steps
389
-
390
- **For Amazon Linux 2023:**
391
-
392
- ```bash
393
- sudo dnf install -y bash-completion
394
- ```
395
-
396
- **For Amazon Linux 2:**
397
-
398
- ```bash
399
- sudo yum install -y bash-completion
400
- ```
401
-
402
- Both commands use the `-y` flag for non-interactive installation.
403
-
404
- #### Configuration
405
-
406
- After installation, the completion script is placed at `/etc/profile.d/bash_completion.sh` and is typically sourced automatically for login shells.
407
-
408
- To ensure completion is available in all sessions, verify your `~/.bashrc` sources the profile scripts:
409
-
410
- ```bash
411
- grep -q bash_completion /etc/bashrc && echo "System-wide completion configured" || echo "Manual configuration may be needed"
412
- ```
413
-
414
- If needed, add the following to your `~/.bashrc`:
415
-
416
- ```bash
417
- # Enable bash-completion
418
- [[ $PS1 && -f /etc/profile.d/bash_completion.sh ]] && . /etc/profile.d/bash_completion.sh
419
- ```
420
-
421
- Apply changes:
422
-
423
- ```bash
424
- source ~/.bashrc
425
- ```
426
-
427
- #### Verification
428
-
429
- Confirm the installation succeeded:
430
-
431
- ```bash
432
- type _init_completion
433
- ```
434
-
435
- Expected output:
436
-
437
- ```
438
- _init_completion is a function
439
- ```
440
-
441
- Verify the package installation:
442
-
443
- ```bash
444
- # Amazon Linux 2023
445
- rpm -q bash-completion
446
-
447
- # Amazon Linux 2
448
- rpm -q bash-completion
449
- ```
450
-
451
- Expected output (version may vary):
452
-
453
- ```
454
- bash-completion-2.11-3.amzn2023.noarch
455
- ```
456
-
457
- #### Troubleshooting
458
-
459
- **Problem**: `dnf: command not found` on Amazon Linux 2
460
-
461
- **Solution**: Amazon Linux 2 uses YUM, not DNF. Use `yum` instead:
462
-
463
- ```bash
464
- sudo yum install -y bash-completion
465
- ```
466
-
467
- **Problem**: Completion not loading in SSH sessions
468
-
469
- **Solution**: SSH sessions may not source `/etc/profile.d/` scripts. Add explicit sourcing to `~/.bashrc`:
470
-
471
- ```bash
472
- [[ -f /etc/profile.d/bash_completion.sh ]] && . /etc/profile.d/bash_completion.sh
473
- ```
474
-
475
- **Problem**: EPEL repository required for some completions
476
-
477
- **Solution**: Install EPEL for additional packages:
478
-
479
- ```bash
480
- # Amazon Linux 2
481
- sudo amazon-linux-extras install epel -y
482
-
483
- # Amazon Linux 2023 (EPEL not typically needed)
484
- ```
485
-
486
- ---
487
-
488
- ### Windows (Not Natively Supported)
489
-
490
- #### Overview
491
-
492
- Bash Completion is a Linux/Unix tool that does not run natively on Windows. Windows uses PowerShell or Command Prompt, which have their own completion mechanisms.
493
-
494
- For Bash functionality on Windows, use one of these alternatives:
495
-
496
- 1. **WSL (Windows Subsystem for Linux)** - Recommended. See the WSL section below.
497
- 2. **Git Bash** - Limited Bash environment. See the Git Bash section below.
498
- 3. **Clink** - Provides Bash-style completion for Command Prompt (not actual bash-completion).
499
-
500
- #### Clink (Bash-Style Completion for cmd.exe)
501
-
502
- If you want Bash-style command-line editing in the native Windows Command Prompt, install Clink:
503
-
504
- ```powershell
505
- choco install clink -y
506
- ```
507
-
508
- **Note**: Clink provides Bash-like line editing features for `cmd.exe`, but it is not the same as bash-completion and does not provide the same completion functionality.
509
-
510
- #### Verification
511
-
512
- Clink enhances Command Prompt automatically after installation. Open a new `cmd.exe` window and look for the Clink banner on startup.
513
-
514
- #### Troubleshooting
515
-
516
- **Problem**: Want actual bash-completion on Windows
517
-
518
- **Solution**: Install WSL and follow the WSL installation instructions below. This provides a full Linux environment with proper bash-completion support.
519
-
520
- ---
521
-
522
- ### WSL (Windows Subsystem for Linux - Ubuntu)
523
-
524
- #### Prerequisites
525
-
526
- - Windows 10 version 1903 or later, or Windows 11
527
- - WSL 2 installed and configured (WSL 1 also works but WSL 2 is recommended)
528
- - Ubuntu distribution installed via WSL
529
- - sudo privileges within the WSL environment
530
-
531
- To check if WSL is installed:
532
-
533
- ```powershell
534
- wsl --version
535
- ```
536
-
537
- If WSL is not installed, install it from PowerShell (Administrator):
538
-
539
- ```powershell
540
- wsl --install
541
- ```
542
-
543
- #### Installation Steps
544
-
545
- Open your WSL Ubuntu terminal and run:
546
-
547
- ```bash
548
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
549
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y bash-completion
550
- ```
551
-
552
- #### Configuration
553
-
554
- WSL Ubuntu typically enables bash-completion by default. Verify the configuration:
555
-
556
- ```bash
557
- grep -q bash_completion /etc/bash.bashrc && echo "System-wide completion configured" || echo "Check configuration"
558
- ```
559
-
560
- If completion is not enabled, add the following to your `~/.bashrc`:
561
-
562
- ```bash
563
- # Enable bash-completion
564
- if ! shopt -oq posix; then
565
- if [ -f /usr/share/bash-completion/bash_completion ]; then
566
- . /usr/share/bash-completion/bash_completion
567
- elif [ -f /etc/bash_completion ]; then
568
- . /etc/bash_completion
569
- fi
570
- fi
571
- ```
572
-
573
- Apply changes:
574
-
575
- ```bash
576
- source ~/.bashrc
577
- ```
578
-
579
- #### Verification
580
-
581
- Confirm the installation succeeded:
582
-
583
- ```bash
584
- type _init_completion
585
- ```
586
-
587
- Expected output:
588
-
589
- ```
590
- _init_completion is a function
591
- ```
592
-
593
- #### Troubleshooting
594
-
595
- **Problem**: Completion not working after WSL restart
596
-
597
- **Solution**: Ensure `~/.bashrc` is being sourced. WSL may use `~/.profile` for login shells. Add to `~/.profile`:
598
-
599
- ```bash
600
- if [ -f ~/.bashrc ]; then
601
- . ~/.bashrc
602
- fi
603
- ```
604
-
605
- **Problem**: systemd-related errors when installing packages
606
-
607
- **Solution**: Enable systemd in WSL if needed. Add to `/etc/wsl.conf`:
608
-
609
- ```ini
610
- [boot]
611
- systemd=true
612
- ```
613
-
614
- Then restart WSL from PowerShell:
615
-
616
- ```powershell
617
- wsl --shutdown
618
- ```
619
-
620
- **Problem**: PATH conflicts between Windows and Linux
621
-
622
- **Solution**: Windows paths may interfere with Linux commands. You can disable Windows path interop by adding to `/etc/wsl.conf`:
623
-
624
- ```ini
625
- [interop]
626
- appendWindowsPath=false
627
- ```
628
-
629
- ---
630
-
631
- ### Git Bash (Manual Installation)
632
-
633
- #### Prerequisites
634
-
635
- - Windows 10 or Windows 11
636
- - Git for Windows installed (includes Git Bash/MINGW64)
637
- - Write access to your home directory
638
-
639
- **Important**: Git Bash provides a minimal Bash environment. While it includes Git-specific completions, general bash-completion is limited. For full bash-completion support, use WSL instead.
640
-
641
- #### Installation Steps
642
-
643
- Git Bash includes Git command completion by default. To verify and enable it:
644
-
645
- 1. Create a directory for completion scripts:
646
-
647
- ```bash
648
- mkdir -p ~/bash_completion.d
649
- ```
650
-
651
- 2. Download the official Git completion script:
652
-
653
- ```bash
654
- curl -fsSL -o ~/bash_completion.d/git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
655
- ```
656
-
657
- 3. Add the following to your `~/.bashrc` (create the file if it does not exist):
658
-
659
- ```bash
660
- # Enable Git completion
661
- if [ -f ~/bash_completion.d/git-completion.bash ]; then
662
- . ~/bash_completion.d/git-completion.bash
663
- fi
664
- ```
665
-
666
- 4. Apply changes by restarting Git Bash or running:
667
-
668
- ```bash
669
- source ~/.bashrc
670
- ```
671
-
672
- #### Adding Additional Completions
673
-
674
- To add completion for other commands, download their completion scripts to `~/bash_completion.d/` and source them in `~/.bashrc`:
675
-
676
- ```bash
677
- # Example: Download Docker completion
678
- curl -fsSL -o ~/bash_completion.d/docker-completion.bash https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker
679
-
680
- # Add to ~/.bashrc
681
- echo '[ -f ~/bash_completion.d/docker-completion.bash ] && . ~/bash_completion.d/docker-completion.bash' >> ~/.bashrc
682
- ```
683
-
684
- #### Verification
685
-
686
- Confirm Git completion is working:
687
-
688
- ```bash
689
- # Type 'git chec' and press Tab
690
- # Should complete to 'git checkout'
691
- git chec<TAB>
692
- ```
693
-
694
- Test branch completion:
695
-
696
- ```bash
697
- # In a Git repository, type 'git checkout ' and press Tab
698
- # Should show available branches
699
- ```
700
-
701
- #### Troubleshooting
702
-
703
- **Problem**: Tab completion does not work
704
-
705
- **Solution**: Ensure the completion script is sourced. Check that `~/.bashrc` exists and contains the source line:
706
-
707
- ```bash
708
- cat ~/.bashrc | grep git-completion
709
- ```
710
-
711
- **Problem**: Completion script not found at the expected location
712
-
713
- **Solution**: Git for Windows may include completion scripts in a different location. Check:
714
-
715
- ```bash
716
- ls "/c/Program Files/Git/mingw64/share/git/completion/"
717
- ```
718
-
719
- If found, source from that location instead:
720
-
721
- ```bash
722
- if [ -f "/c/Program Files/Git/mingw64/share/git/completion/git-completion.bash" ]; then
723
- . "/c/Program Files/Git/mingw64/share/git/completion/git-completion.bash"
724
- fi
725
- ```
726
-
727
- **Problem**: `~/.bashrc` is not being sourced
728
-
729
- **Solution**: Git Bash may source `~/.bash_profile` instead. Add to `~/.bash_profile`:
730
-
731
- ```bash
732
- if [ -f ~/.bashrc ]; then
733
- . ~/.bashrc
734
- fi
735
- ```
736
-
737
- ---
738
-
739
- ## Post-Installation Configuration
740
-
741
- ### Adding Completions for Homebrew Packages (macOS)
742
-
743
- After installing tools via Homebrew, link their completions:
744
-
745
- ```bash
746
- brew completions link
747
- ```
748
-
749
- This makes completions for Homebrew-installed tools available to bash-completion.
750
-
751
- ### Adding Custom Completions
752
-
753
- Place custom completion scripts in the appropriate directory:
754
-
755
- | Platform | Completion Directory |
756
- |----------|---------------------|
757
- | macOS (Homebrew) | `${HOMEBREW_PREFIX}/etc/bash_completion.d/` |
758
- | Ubuntu/Debian | `/usr/share/bash-completion/completions/` |
759
- | Amazon Linux | `/usr/share/bash-completion/completions/` |
760
- | Git Bash | `~/bash_completion.d/` |
761
-
762
- ### Verifying Completion is Active
763
-
764
- Test completion functionality with any command that supports it:
765
-
766
- ```bash
767
- # Type a partial command and press Tab twice
768
- git <TAB><TAB> # Shows Git subcommands
769
- ssh <TAB><TAB> # Shows known hosts
770
- cd <TAB><TAB> # Shows directories
771
- ```
772
-
773
- ---
774
-
775
- ## Common Issues
776
-
777
- ### Issue: Completion Works for Some Commands but Not Others
778
-
779
- **Cause**: Not all commands ship with completion scripts. Completions must be installed separately or provided by the package.
780
-
781
- **Solution**: Check if a completion script exists for the command:
782
-
783
- ```bash
784
- # On Ubuntu/Debian/Amazon Linux
785
- ls /usr/share/bash-completion/completions/ | grep <command>
786
-
787
- # On macOS
788
- ls ${HOMEBREW_PREFIX}/etc/bash_completion.d/ | grep <command>
789
- ```
790
-
791
- ### Issue: Slow Completion Performance
792
-
793
- **Cause**: Large completion lists or slow disk access.
794
-
795
- **Solution**: bash-completion@2 includes lazy loading to improve performance. Ensure you are using version 2.x:
796
-
797
- ```bash
798
- # Check the bash_completion script version
799
- grep -m1 "BASH_COMPLETION_VERSINFO" /usr/share/bash-completion/bash_completion 2>/dev/null || \
800
- grep -m1 "BASH_COMPLETION_VERSINFO" ${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh 2>/dev/null
801
- ```
802
-
803
- ### Issue: Completion Breaks After System Update
804
-
805
- **Cause**: Configuration files may be overwritten or package updates may change paths.
806
-
807
- **Solution**: Re-source your configuration and verify paths:
808
-
809
- ```bash
810
- source ~/.bashrc
811
- type _init_completion
812
- ```
813
-
814
- ### Issue: "bash: _init_completion: command not found" After Installation
815
-
816
- **Cause**: The completion script is not being sourced by your shell configuration.
817
-
818
- **Solution**: Manually add the source line to your `~/.bashrc` or `~/.bash_profile` as documented in the platform-specific sections above.
819
-
820
- ---
821
-
822
- ## References
823
-
824
- - [bash-completion GitHub Repository](https://github.com/scop/bash-completion)
825
- - [bash-completion@2 Homebrew Formula](https://formulae.brew.sh/formula/bash-completion@2)
826
- - [Homebrew Shell Completion Documentation](https://docs.brew.sh/Shell-Completion)
827
- - [Ubuntu bash-completion Package](https://launchpad.net/ubuntu/+source/bash-completion)
828
- - [Debian Wiki - Add Bash Completion](https://wiki.debian.org/Add%20Bash%20Completion)
829
- - [nixCraft - How to Add Bash Auto Completion in Ubuntu Linux](https://www.cyberciti.biz/faq/add-bash-auto-completion-in-ubuntu-linux/)
830
- - [nixCraft - RHEL/CentOS Install and Activate Bash Completion](https://www.cyberciti.biz/faq/fedora-redhat-scientific-linuxenable-bash-completion/)
831
- - [Git Completion Script (Official)](https://github.com/git/git/blob/master/contrib/completion/git-completion.bash)
832
- - [Microsoft - Install WSL](https://learn.microsoft.com/en-us/windows/wsl/install)
833
- - [Microsoft - Use systemd to manage Linux services with WSL](https://learn.microsoft.com/en-us/windows/wsl/systemd)