====== Перенаправление потоков ввода/вывода ======
* [[http://ru.wikipedia.org/wiki/Стандартные_потоки]]
* [[http://ru.wikipedia.org/wiki/Перенаправление_(UNIX)]]
* [[http://ru.wikipedia.org/wiki/Именованный_канал]]
* [[http://en.wikipedia.org/wiki/Remote_Shell]]
===== Файловые дескрипторы =====
Номер Название Оператор
0 STDIN <
1 STDOUT >
===== Оператор > =====
$ ps ax > ps.txt
$ > ps.txt ps ax
$ less ps.txt
$ grep init ps.txt
===== Оператор < =====
* [[Сервис MySQL#Импорт данных]] MySQL
$ grep init < ps.txt
$ < ps.txt grep init
===== Оператор | =====
$ ps ax > ps.txt
$ grep init < ps.txt
или
$ ps ax | grep init
$ du -s /usr/share/* | sort -n | tail -n 1
FreeBSD
$ tail -f /var/log/messages | grep auth
Linux
$ tail -f /var/log/auth.log | grep FAILED
$ ls -l /bin | sort -n -k5 | tail -n5 | cut -c48-60
===== Команда tee =====
$ find /usr/share -name '*.html' | tee find_res.txt
$ ls /bin /b1n 2>&1 | tee full_log.txt
===== Команда cat =====
$ cat /etc/passwd
При отсутствии аргументов читает с STDIN, пишет на STDOUT
$ cat
$ cat < /etc/passwd
$ cat > f.txt
$ cat < f.txt > f2.txt
===== Оператор >> =====
$ cat >> f2.txt
===== Оператор << =====
$ cat > f2.txt <
===== Файловый дескриптор номер 2 - STDERR =====
$ ls fhgfdgbdfhsd
$ ls errfilename > ls_res.txt
$ ls errfilename 2> ls_err.txt
$ ls /bin /b1n 2>&1 | tee full_log.txt
$ ls /bin /errdirname > ls.txt 2>&1
$ ls /sdfgsdfgsd > /dev/null 2>&1
$ ls /sdfgsdfgsd 2>/dev/null >&2
$ ls /sdfgsdfgsd &>/dev/null
===== Перенаправление ввода/вывода между процессами, работающими на разных системах =====
# cd /
# 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'
===== Именованные каналы =====
В файлах grep1.txt и grep2.txt не должно быть пустых строк в конце
$ cat grep1.txt
rtf$
doc$
$ cat grep2.txt
gz$
$ mkfifo findresult.fifo
$ find /usr/share/ -type f > findresult.fifo &
$ cat grep*.txt | grep -f - findresult.fifo
$ rm findresult.fifo