Start all of your commands with a comma (2009)
Overall reaction to comma-prefixed commands
- Many commenters like the idea once they see it, especially the ability to list all personal tools quickly with
,<Tab>. - Several have independently used comma (or similar) for years for shell commands, git subcommands, Vim mappings, and text-expander triggers.
- Others find it unnecessary or ugly, saying they rarely hit name collisions and can just remember their command names or list
~/bin.
Name collisions, PATH, and safety
- One camp: just put
~/binfirst inPATH; if collisions happen, user tools override system tools, and that’s fine. - Another camp worries this can break tools that expect to call the system binary or rely on a “default PATH,” especially for build tools or scripts invoked non-interactively.
- Some report never having collisions in decades; others cite collisions (e.g.,
ip,node,npm) as real problems.
Ergonomics and discoverability
- Comma-prefix plus shell completion (often with fzf) makes it very fast to list and rediscover rarely used personal scripts.
- Competing workflows:
- Short 1–3 character aliases and wrappers (often prefixed with a letter like
gorj). - Long, descriptive script names with short shell aliases.
- Remembering names and just listing
~/bin.
- Short 1–3 character aliases and wrappers (often prefixed with a letter like
Alternative namespacing schemes
- Other prefix characters suggested: underscore, period, single letters, or patterns like
x.yordo.something. - Some like explicit namespacing of system commands (e.g., hypothetical
sys::mkfs) so global command space is safer for users. - Concern that Unix historically lacked proper namespacing, leading to these ad-hoc conventions.
Dotfiles and local script management
- Many use git for
~/binand dotfiles, with various patterns: bare repos with$HOMEas work tree, symlink trees, tools like chezmoi or dotbot, or Ansible/other config management. - Scripts are often grouped into a few repos and synced across machines periodically rather than maintained as many tiny projects.
Windows vs Linux script execution
- One Windows user misses extension-based execution (
hello.py→hello) and dislikes hard-coded shebangs. - Replies recommend:
- Use shebangs with
/usr/bin/env python3for flexibility. - Name scripts without
.pyand rely on+xplusPATH. - Use aliases, symlinks,
binfmt_misc, orupdate-alternativesif deeper indirection is needed.
- Use shebangs with