------------------------------------------------------------------------ echo ------------------------------------------------------------------------ echo simply prints the words (parameters) that follow the command. it is surprisingly useful tool. $ echo hello hello $echo Hello my name is Kity Hello, my name is Kitty #notice the even spacing between the words $ echo "Hello my name is Kitty" Hello, my name is Kitty #the non equal spaces are preserved (due to the quotes) The following characters have special meaning: # all characters to the right are commented out ; this marks the end of the current command $ by itself is fine but not if succeeded alphanumeric+underscore * fine if followed or succeeded by any character * by iteself expands to the list of files in the current directory You can escape these characters by "\" # arcane use of echo $ echo * #lists all files in the directory, separated by a blank # but does not expand the sub-directories $ echo *.txt # lists all .txt file on a single line, separated by a blank In contrast, $ ls -m #lists all files in the directory, separated by a comma # but does not expand the sub-directories $ ls -m * #lists all files, including those in sub-directories, comma # separated #NOTE: the list can include \nl (nasty) flags: -n or -e -n the string is printed without carriage return -o ASCII control characters such as \a (for bell), \b (for move back) are active $ echo -n "Hello Kitty" #will not print carriage return $ echo -n "Hello Kitty"; echo " from Japan" $ echo -e "Hello Kitty. Long time no see \a" #you should hear ASCII bell