Что означает на Linux скрипте перед командой символ $?
В общем я добился от автора объяснения, что ему нужно

например при использовании значении переменной например good=bad далее выполнив команду echo $good 

То о чем ты говоришь, называется не команда, а переменная. Это и сбило всех с толку. 

Объяснение очень простое.    
Поскольку в баше ОЧЕНЬ нестрогий синтаксис, и любой текст воспринимается как строка без всяких кавычек, то нужен способ отличить переменную от просто строки. Если ты напишешь 
good=bad
echo good
то как система поймет, ЧТО ты хочешь вывести - строку good или переменную good?
поэтому тут без вариантов - переменную надо как-то отличать от остального текста. Это и делает знак доллара

При этом для присвоения значения переменной знак доллара не нужен, поскольку система видит по знаку =, что речь идет о присвоении (и видимо поэтому нельзя ставить проблелы вокруг знака =). 
Да, нелогично. Но не все в нашей жизни поддается логике


Хм. наверное можно было еще безграмотнее задать вопрос, если постараться. Рюсски нэ радной, даа?

- перед командой в терминале - просто симвод приглашения, означает что терминал готов принять команду. Задается переменной окружения PS1, в которую можно загнать довольно развесистую конструкцию - вот например:
mch=`hostname -s`
PS1='\[\033[01;32m\]${mch:q}:\[\033[01;34m\][$USER]\[\033[01;36m\] \!>\[\033[00;38m\] '
- в скрипте - $$ - содержит PID скрипта, а сам $ - просто символ, с которого начинается переменная в случае, если нужно взять ее занчение

man bash
info bash