There are many hidden shortcuts and tricks that are possible in World of Warcraft that can improve your gameplay. These range from keybinds, macros, slash commands and hidden shortcuts.
Many of the actions that are performable in game with the use of the mouse are also possible using slash commands. Most of these are also usable in macros. The following lists the common slash commands that are available in the game.

General Commands
/help
Gives very general basic help.

/assist [name]
Assist your currently selected target, or target player if specified.

/cast spell
Cast the named spell, which may include the rank in parenthesis. For example: "/cast Slow Fall", "/cast Polymorph(Rank 2)".

/afk [message]
Toggle yourself as "away from keyboard". Typing /afk again will turn off AFK mode.

/combatlog
Toggle logging of your Combat Log into (wow folder)\Logs\PlayerCombatLog.txt.

/dnd [message]
Toggle yourself as "do not disturb". Typing /dnd again will turn off DND mode.

/duel [name]
Request a duel with your target, or target player if specified.

/yield
(/forfeit) Surrender to your opponent in a duel.

/emote message
(/em, /me) Emote the message.

/exit
Exits the game.

/follow
(/f) Automatically move to follow your current target.

/ignore name
Toggle ignoring target player.

/inspect
(/ins) Inspect the target player to see his equipment.

/logout
(/camp) Sit down and logout.

/macro
Open the Macro Interface

/macrohelp
Gives basic help on making macros.

/played
Show how much time your character has been online.

/pvp
Enable PvP for the next 5 minutes.

/raid message
(/r) Send the message to your raid chat.

/random number [number2]
(/rnd, /rand) Roll a random number between 1 and number, or between number and number2 if specified.

/remfriend name
(/removefriend) Remove a friend from your friends list.

/split money
Split the specified amount of money among your party members.

/target name
(/tar) Change the currently selected target to the specified player.

/time
Show the current game and server time.

/trade
(/tr) Initiate a trade with your selected target.

/who [string[ string2...]] [num[-num2]] [r-"race"] [c-"class"] [z-"zone"] [g-"guild"]
With no arguments, lists online players around your level in the current zone. string will list all players whose name, guild, class, race or zone contain the specified string. num[-num2] will list players within the specified level range.

/bug
Submit a bug report.

/suggest
Submit a suggestion.

/note message
Submit a message.

/script LUA-command
For UI creators.

/console command
For performing some game console commands, such as "gxrestart", "reloadui" and "quit".

/console settingname [newsetting]
For tweaking of game settings.

Group Leader Commands
/invite [name]
(/inv) Invite target player to your group.

/uninvite [name]
(/un) Remove target player from your group.

/ffa
Set "free for all" loot policy.

/master [name]
Set target player to be the master looter in "master loot" loot policy.

/roundrobin
Set "round robin" loot policy.

Chat Commands
/guild message
(/g) Send the message to your guild chat channel.

/party message
(/p) Send the message to your party chat.

/reply message
(/r, R) Send the message to the last player to whisper to you.

/say message
(/s) Send the message to people around you.

/yell message
(/shout) Send the message to people around you (very big radius, near zone-wide).

/whisper name message
(/w, /tell) Whisper the message to target player.

Chat Channel Commands
/chat
(/chathelp) Display a list of chat commands.

/join channel [password]
(/chan, /channel) Join (or create) the specified chat channel.

/leave channel|#
(/chatleave, /chatexit) Leave the specified chat channel, you can also specify the channel number.

/# message
(/c, /csay) Send the message to channel number #.

/announcements channel|#
(/ann) Toggle join/leave announcements on specified channel.

/ban channel|# name
Ban target player from specified channel.

/unban channel|# name
Unban target player from specified channel.

/chatlist
(/chatwho, /chatinfo) Lists all the channels you are on with their associated channel number.

/chatinvite channel|# name
(/cinvite) Invite target player to specified channel.

/ckick channel|# name
Kicks target player out of specified channel.

/moderator channel|# name
(/mod) Set target player to moderator status on specified channel.

/unmoderator channel|# name
(/unmod) Remove moderator status from target player on specified channel.

/moderate channel|#
Toggle moderation mode on specified channel.

/mute channel|# name
(/squelch, /unvoice) Disallow target player to speak on specified channel.

/unmute channel|# name
(/unsquelch, /voice) Allow target player to speak on specified channel.

/password channel|# [password]
(/pass) Set, change or remove the channel password.

/owner channel|# [name]
Display or change the owner of specified channel.

Guild Commands
/ginfo
Gives basic information about your guild.

/g message
(/guild) Sends a chat message to all members of your guild

/o message
Sends a chat message to all officers of your guild

/ginvite name
(/guildinvite) Invites target player to join your guild

/gremove name
(/guildremove) Removes target player from your guild

/gpromote name
(/guildpromote) Promotes target player one rank within your guild

/gdemote name
(/guilddemote) Demotes target player one rank within your guild

/gmotd message
(/guildmotd) Sets the guild's message of the day

/gquit
(/guildquit) Removes you from your guild

/groster
(/guildroster) Gives an entire guild roster (officers and leaders only)

/gleader name
(/guildleader) Sets target player as the guild leader (guild leader only)

/gdisband
(/guilddisband) Disbands your guild (guild leader only)