<p>In bash, environmental variables will tab-expand correctly when placed after an echo command, for example:</p>

<pre><code>echo $HOME
</code></pre>

<p>But after cd or cat, bash places a \ before the $ sign, like so:</p>

<pre><code>cd \$HOME
</code></pre>

<p>If I use a variable as the second argument to a command, it won't expand at all:</p>

<pre><code>cp somefile $HOM
</code></pre>

<p>What mysterious option do I have in my .bashrc or .inputrc file that is causing me such distress?</p>

For the second instance, you can press ESC before tab to solve it.
I don't know the solution to your problem, but you could look in
/etc/bash_completion
or the files under
/etc/bash_completion.d
to determine what commands use autocompletion and how.
```
```
help complete
```
```
Might also be helpful.