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 ~/bin first in PATH; 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 g or j).
    • Long, descriptive script names with short shell aliases.
    • Remembering names and just listing ~/bin.

Alternative namespacing schemes

  • Other prefix characters suggested: underscore, period, single letters, or patterns like x.y or do.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 ~/bin and dotfiles, with various patterns: bare repos with $HOME as 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.pyhello) and dislikes hard-coded shebangs.
  • Replies recommend:
    • Use shebangs with /usr/bin/env python3 for flexibility.
    • Name scripts without .py and rely on +x plus PATH.
    • Use aliases, symlinks, binfmt_misc, or update-alternatives if deeper indirection is needed.