This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
перенаправление_потоков_ввода_вывода [2012/02/15 15:53] val |
перенаправление_потоков_ввода_вывода [2019/06/26 14:00] (current) val [Файловый дескриптор номер 2 - STDERR] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Перенаправление потоков ввода/вывода ====== | ====== Перенаправление потоков ввода/вывода ====== | ||
| - | [[http://ru.wikipedia.org/wiki/Стандартные_потоки]] | + | * [[http://ru.wikipedia.org/wiki/Стандартные_потоки]] |
| - | + | * [[http://ru.wikipedia.org/wiki/Перенаправление_(UNIX)]] | |
| - | [[http://ru.wikipedia.org/wiki/Перенаправление_(UNIX)]] | + | * [[http://ru.wikipedia.org/wiki/Именованный_канал]] |
| - | + | * [[http://en.wikipedia.org/wiki/Remote_Shell]] | |
| - | [[http://ru.wikipedia.org/wiki/Именованный_канал]] | + | |
| - | + | ||
| - | [[http://en.wikipedia.org/wiki/Remote_Shell]] | + | |
| ===== Файловые дескрипторы ===== | ===== Файловые дескрипторы ===== | ||
| Line 15: | Line 12: | ||
| 1 STDOUT > | 1 STDOUT > | ||
| </code> | </code> | ||
| - | ===== Операторы < > ===== | + | ===== Оператор > ===== |
| <code> | <code> | ||
| $ ps ax > ps.txt | $ ps ax > ps.txt | ||
| + | |||
| $ > ps.txt ps ax | $ > ps.txt ps ax | ||
| Line 23: | Line 21: | ||
| $ grep init ps.txt | $ grep init ps.txt | ||
| + | </code> | ||
| + | ===== Оператор < ===== | ||
| + | |||
| + | * [[Сервис MySQL#Импорт данных]] MySQL | ||
| + | |||
| + | <code> | ||
| $ grep init < ps.txt | $ grep init < ps.txt | ||
| + | |||
| $ < ps.txt grep init | $ < ps.txt grep init | ||
| </code> | </code> | ||
| + | |||
| ===== Оператор | ===== | ===== Оператор | ===== | ||
| Line 35: | Line 41: | ||
| $ ps ax | grep init | $ ps ax | grep init | ||
| - | FreeBSD | + | $ du -s /usr/share/* | sort -n | tail -n 1 |
| - | $ du -d1 /var | sort -n | + | |
| - | Linux | + | |
| - | $ du --max-depth=1 /var | sort -n | + | |
| FreeBSD | FreeBSD | ||
| $ tail -f /var/log/messages | grep auth | $ tail -f /var/log/messages | grep auth | ||
| Linux | Linux | ||
| - | $ sudo tail -f /var/log/auth.log | grep FAILED | + | $ tail -f /var/log/auth.log | grep FAILED |
| $ ls -l /bin | sort -n -k5 | tail -n5 | cut -c48-60 | $ ls -l /bin | sort -n -k5 | tail -n5 | cut -c48-60 | ||
| + | </code> | ||
| + | |||
| + | ===== Команда tee ===== | ||
| + | |||
| + | <code> | ||
| + | $ find /usr/share -name '*.html' | tee find_res.txt | ||
| + | |||
| + | $ ls /bin /b1n 2>&1 | tee full_log.txt | ||
| </code> | </code> | ||
| Line 76: | Line 87: | ||
| $ ls fhgfdgbdfhsd | $ ls fhgfdgbdfhsd | ||
| - | $ ls errfilename > ls.txt | + | $ ls errfilename > ls_res.txt |
| - | $ ls errfilename 2> ls.txt | + | $ ls errfilename 2> ls_err.txt |
| - | $ ls /bin /errdirname > ls.txt 2>ls.txt | + | $ ls /bin /b1n 2>&1 | tee full_log.txt |
| $ ls /bin /errdirname > ls.txt 2>&1 | $ ls /bin /errdirname > ls.txt 2>&1 | ||
| $ ls /sdfgsdfgsd > /dev/null 2>&1 | $ ls /sdfgsdfgsd > /dev/null 2>&1 | ||
| - | </code> | ||
| - | ===== Запуск процессов в фоновом режиме ===== | + | $ ls /sdfgsdfgsd 2>/dev/null >&2 |
| - | <code> | + | $ ls /sdfgsdfgsd &>/dev/null |
| - | $ nohup find / -name index.html > search.result.txt 2>/dev/null & | + | |
| - | Ctrl-D | + | |
| </code> | </code> | ||
| ===== Перенаправление ввода/вывода между процессами, работающими на разных системах ===== | ===== Перенаправление ввода/вывода между процессами, работающими на разных системах ===== | ||
| <code> | <code> | ||
| - | $ tar -c -f etc.tar etc/ | + | # cd / |
| - | $ tar -c -f - etc/ | cat > etc.tar | + | # tar -c -f etc.tar etc/ |
| - | $ tar -c -f - etc/ | rsh -l user server 'cat > etc.tar' | + | # tar -c -f - etc/ | cat > etc.tar |
| - | $ tar -c -f - etc/ | ssh -l user server 'cat > etc.tar' | + | # tar -c -f - etc/ | rsh -l userX backup 'cat > etc.tar' |
| - | $ tar -c -f - etc/ | ssh user@server 'cat > etc.tar' | + | # tar -c -f - etc/ | ssh -l userX backup 'cat > etc.tar' |
| + | |||
| + | # tar -c -f - etc/ | ssh userX@backup 'cat > etc.tar' | ||
| </code> | </code> | ||
| ===== Именованные каналы ===== | ===== Именованные каналы ===== | ||
| + | |||
| + | В файлах grep1.txt и grep2.txt не должно быть пустых строк в конце | ||
| + | |||
| <code> | <code> | ||
| $ cat grep1.txt | $ cat grep1.txt | ||
| - | rtf | + | </code><code> |
| - | doc | + | rtf$ |
| + | doc$ | ||
| + | </code><code> | ||
| $ cat grep2.txt | $ cat grep2.txt | ||
| - | jpg | + | </code><code> |
| - | gif | + | gz$ |
| + | </code><code> | ||
| $ mkfifo findresult.fifo | $ mkfifo findresult.fifo | ||
| - | $ find /usr/share/ > findresult.fifo & | + | $ find /usr/share/ -type f > findresult.fifo & |
| $ cat grep*.txt | grep -f - findresult.fifo | $ cat grep*.txt | grep -f - findresult.fifo | ||