Here are some examples of some good Shaman class macros:
/cast [@mouseover,help,nodead]  Cleanse Spirit
Casts "Cleanse Spirit" at your mouseovered target, if you have one, if not, then it casts on your current target or the player (self)
/cast Wind Shear
This will stop your casting and cast "Wind Shear" and "Purge" at the same time on your current target without a global cooldown.
/cast [@focus,nodead,harm] Wind Shear
This will stop your casting and cast "Wind Shear" at your focus target, if it's unfriendly and not dead. If you hold down [shift]
it will set your current target to your focus target.
/cast [nomod,flyable,nocombat] FlyingMountHere; [nomod,noflyable,nocombat] GroundMountHere; [indoors][combat][mod:alt] Ghost Wolf
Casts your flying mount if you're in a flyable zone and not in combat, if not, then it casts your ground mount if not in combat,
if not, and you're holding down [alt] or you're indoors or in combat, then you will cast "Ghost Wolf".
Since you can't place passive abilities on your action bar, you can keep track of your Reincarnation cooldown and how many Ankhs you
may have with this macro.
/clearfocus [mod:alt]; [target=focus,dead]
/stopmacro [mod:alt]; [nocombat,mod:shift]
/cast [@focus] Hex
This will cast "Hex" on your current focus target. It will also help set your focus target, if you're holding down [shift] and use this
macro, it will set your focus target to whatever you're currently targeting. The macro will clear your focus if you're holding down [alt]
and use it. You can also use this for "Bind Elemental".
#showtooltip Elemental Mastery
/cast Elemental Mastery
/cast Lightning Bolt
Uses your "use" trinkets, if you have any, then casts Elemental Mastery and your instant Lightning Bolt right afterward.
This will cast "Stormstrike" and start your autoattack function.
/showtooltip Shamanistic Rage
/cast Shamanistic Rage
Uses your "use" trinkets and uses "Shamanistic Rage".
/cast Windfury Weapon
Casts "Windfury Weapon" on your main hand weapon. Replace with whichever spell you want on your weapon, and 17 for your offhand weapon.
/use [button:1] Windfury Weapon; Flametongue Weapon
/use [button:1] 16; 17
Casts "Windfury Weapon" on your main hand weapon if the macro is used with "button 1". If not, then it casts "Flametongue Weapon"
on your offhand weapon.
#showtooltip Greater Healing Wave
/cast [@mouseover,help,exists] [@target,help,nodead] [@targettarget,help,nodead] [@player] Greater Healing Wave
Casts your "Greater Healing Wave" spell with certain priorities:
1. your mouseover target, if it exists and is friendly,
2. your target, if it's friendly and it's not dead
3. your target's target, if it's friendly and not dead
4. if nothing else is true for what you're targeting, you will cast on the player (self).
You can replace "Greater Healing Wave" with any healing spell you want.
/cast [@focus,harm][@focustarget,harm][@targettarget,harm][@target,harm] Earth Shock
This is helpful for when you get a Focused Insight buff. You can cast "Earth Shock" without untargeting your current healing target.