updated help.
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
> terminal piping
|
||||
|
||||
Piping (`|`) and redirection (`>`, `>>`, `<`) allow you to chain commands together and control input/output. These are powerful tools for combining and manipulating data in the terminal.
|
||||
|
||||
---
|
||||
|
||||
### Piping with `|`, `||`, `&` and `&&`
|
||||
- `command1 | command2`: Sends the output of `command1` as input to `command2`. For example, `ls | grep "txt"` lists all files in the current directory and filters for files containing "txt".
|
||||
|
||||
Another example: `cat log.txt | grep "error" | less` searches for "error" in `log.txt` and displays the results in `less`.
|
||||
|
||||
|
||||
- `command1 && command2`: Runs `command2` only if `command1` succeeds (exits with status 0).
|
||||
|
||||
Example: `mkdir new_folder && cd new_folder` creates 'new_folder' and moves into it only if the directory is created successfully.
|
||||
|
||||
Example: `git commit -m "Update" && git push` pushes changes only if the commit succeeds.
|
||||
|
||||
|
||||
- `command1 || command2`: Runs `command2` only if `command1` fails (exits with a non-zero status).
|
||||
|
||||
Example: `cat file.txt || echo "File not found"` prints the contents of 'file.txt' or displays "File not found" if the file doesn’t exist.
|
||||
|
||||
Example: `ping -c 1 google.com || echo "Network unavailable"` checks connectivity and shows an error message if the ping fails.
|
||||
|
||||
|
||||
- `command &`: Runs `command` in the background, allowing you to continue using the terminal. the command is still a child of the terminal and *will* exit when you close the terminal.
|
||||
|
||||
Example: `firefox &` opens Firefox in the background while keeping the terminal available for other commands.
|
||||
|
||||
Example: `cp -r ~/Documents/* ~/Backups/ &` will start a file copy to copy all files in 'Documents' to 'Backups', but sends it to the background so your terminal is not frozen until it is completed.
|
||||
|
||||
Example: `$(cp -r ~/Documents/* ~/backups/ && notify-send "copy complete!" || notify-send "copy failed!") &` will do the same as above, run a copy in the background, but once the command exits, it'll notify you of the success or failure.
|
||||
|
||||
|
||||
---
|
||||
|
||||
### Redirection with `>` and `>>`
|
||||
- `command > file.txt`: Redirects the output of `command` to 'file.txt', overwriting any existing content. For example, `echo "Hello" > greeting.txt` writes "Hello" to 'greeting.txt'.
|
||||
|
||||
- `command >> file.txt`: Appends the output of `command` to 'file.txt'. For example, `echo "World" >> greeting.txt` appends "World" to 'greeting.txt'.
|
||||
|
||||
- `command < file.txt`: Redirects the contents of 'file.txt' as input to `command`. For example, `grep "pattern" < input.txt` searches for "pattern" in 'input.txt'.
|
||||
|
||||
---
|
||||
|
||||
### Combining Pipes and Redirection
|
||||
- Example: `ls -1 | grep ".txt" > textfiles.txt` lists all files, filters for '.txt' files, and saves the result to 'textfiles.txt'.
|
||||
|
||||
- Example: `cat access.log | grep "404" | wc -l > error_count.txt` counts 404 errors in 'access.log' and saves the count to 'error_count.txt'.
|
||||
|
||||
---
|
||||
|
||||
### Discarding Output with `/dev/null`
|
||||
- `command > /dev/null`: Discards the output of `command`. For example, `ls > /dev/null` runs `ls` but suppresses its output.
|
||||
|
||||
- `command 2> /dev/null`: Discards error messages. For example, `ls /nonexistent 2> /dev/null` suppresses the error message for a non-existent directory.
|
||||
|
||||
---
|
||||
|
||||
### Using `tee` for Intermediate Output
|
||||
- `command | tee file.txt`: Displays output in the terminal and saves it to 'file.txt'. For example, `ls | tee files.txt` lists files in the terminal and saves the list to 'files.txt'.
|
||||
|
||||
- `command | tee -a file.txt`: Appends output to 'file.txt' instead of overwriting. For example, `echo "New line" | tee -a notes.txt` appends "New line" to 'notes.txt'.
|
||||
Reference in New Issue
Block a user