An alias in your favorite shell's .rc file solves the first problem. Better yet, you can throw it behind a test block to ensure you never get a command not found error:
test -f /usr/bin/exa && alias ls='/usr/bin/exa'
The second problem is solved by configuration management tools pushing out your desired tools to your entire environment.
Which work well until your "entire environment" is some new-fangled ARM/SuperH/(etc.) board, and your configuration management tool is x86_64-only and/or not-in-the-repo of the only distro specialized enough to support that new-fangled board.
reply