This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
перенаправление_потоков_ввода_вывода [2011/10/20 22:31] val |
перенаправление_потоков_ввода_вывода [2017/04/06 15:12] val [Перенаправление потоков ввода/вывода] |
||
---|---|---|---|
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]] | ||
===== Файловые дескрипторы ===== | ===== Файловые дескрипторы ===== | ||
Line 14: | Line 15: | ||
<code> | <code> | ||
$ ps ax > ps.txt | $ ps ax > ps.txt | ||
+ | $ > ps.txt ps ax | ||
- | $ more ps.txt | + | $ less ps.txt |
$ grep init ps.txt | $ grep init ps.txt | ||
$ grep init < ps.txt | $ grep init < ps.txt | ||
+ | $ < ps.txt grep init | ||
</code> | </code> | ||
+ | |||
===== Оператор | ===== | ===== Оператор | ===== | ||
<code> | <code> | ||
Line 28: | Line 32: | ||
$ 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 | ||
- | $ tail -f /var/log/auth.log | grep FAILED | + | $ tail -f /var/log/auth.log | grep FAILED |
- | $ ls -l /bin | sort -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 69: | Line 78: | ||
$ 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> | + | |
- | $ 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/ | cat > etc.tar | ||
+ | |||
+ | # tar -c -f - etc/ | rsh -l userX backup '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> | ||
+ | |||
+ | ===== Именованные каналы ===== | ||
+ | |||
+ | В файлах grep1.txt и grep2.txt не должно быть пустых строк в конце | ||
+ | |||
+ | <code> | ||
+ | $ cat grep1.txt | ||
+ | </code><code> | ||
+ | rtf$ | ||
+ | doc$ | ||
+ | </code><code> | ||
+ | $ cat grep2.txt | ||
+ | </code><code> | ||
+ | gz$ | ||
+ | </code><code> | ||
+ | $ mkfifo findresult.fifo | ||
- | $ tar -c -f - etc/ | rsh -l user server 'cat > etc.tar' | + | $ find /usr/share/ -type f > findresult.fifo & |
- | $ tar -c -f - etc/ | ssh -l user server 'cat > etc.tar' | + | $ cat grep*.txt | grep -f - findresult.fifo |
- | $ tar -c -f - etc/ | ssh user@server 'cat > etc.tar' | + | $ rm findresult.fifo |
</code> | </code> |