# Linux metacharacters 1. `;` : Separates commands. ``` command1 ; command2 # Run command1, then run command2 regardless of whether command1 succeeded. ``` 2. `&` : Background execution. ``` command & # Runs "command" in the background. ``` 3. `&&` : AND operator. ``` command1 && command2 # Run command1, then run command2 only if command1 succeeded. ``` 4. `||` : OR operator. ``` command1 || command2 # Run command1, then run command2 only if command1 failed. ``` 5. `|` : Pipe operator. ``` command1 | command2 # Output of command1 is passed as input to command2. ``` 6. `()` : Command group. ``` (command1; command2) # Group commands into a subshell. ``` 7. `{}` : Command block. ``` { command1; command2; } # Group commands in the current shell. ``` 8. `$()` : Command substitution. ``` echo $(command) # Runs "command" and substitutes its output in place. ``` 9. ` `` ` (Backticks): Another way of command substitution. ``` echo `command` # Same as above, but this syntax can be harder to spot. ``` 10. `>` : Output redirection. ``` command > file # Redirect the output of command to a file, overwriting the file. ``` 11. `>>` : Append output. ``` command >> file # Append the output of command to a file. ``` 12. `<` : Input redirection. ``` command < file # Use "file" as input for command. ``` 13. `2>` : Error redirection. ``` command 2> file # Redirect the error output of command to a file, overwriting the file. ``` 14. `2>>` : Append error output. ``` command 2>> file # Append the error output of command to a file. ``` 15. `&>` : Redirect all output (stdout and stderr). ``` command &> file # Redirect all output of command to a file, overwriting the file. ``` 16. `*` : Wildcard. ``` ls *.txt # List all .txt files. ``` 17. `?` : Single character wildcard. ``` ls ?.txt # List all .txt files with a single character name. ``` 18. `[]` : Character class. ``` ls [ab]*.txt # List all .txt files starting with 'a' or 'b'. ``` 19. `!` : Negation. ``` command1; ! command1 # Execute command1, then execute command1 again only if the first execution failed. ``` 20. `#` : Comment. ``` # This is a comment in Bash. ``` 21. `\$` : Escape character. ``` echo \$HOME # prints $HOME, not the value of the variable. ``` 22. `\"` : Escape character for quotes. ``` echo "This is a \"quote\"" # prints This is a "quote". ``` Be careful, especially when using redirections, as they can overwrite your files without warning if you're not careful.