перенаправление_потоков_ввода_вывода

This is an old revision of the document!


Перенаправление потоков ввода/вывода

Файловые дескрипторы

Номер   Название    Оператор
0       STDIN         <
1       STDOUT        >

Операторы < >

$ ps ax > ps.txt
$ > ps.txt ps ax

$ less ps.txt

$ grep init ps.txt

$ grep init < ps.txt
$ < ps.txt grep init

Оператор |

$ ps ax > ps.txt
$ grep init < ps.txt
или
$ ps ax | grep init

FreeBSD
$ du -d1 /var | sort -n
Linux
$ du --max-depth=1 /var | sort -n

FreeBSD
$ tail -f /var/log/messages | grep auth
Linux
$ sudo tail -f /var/log/auth.log  | grep FAILED

$ ls -l /bin | sort -n -k5 | tail -n5 | cut -c48-60

Команда cat

$ cat /etc/passwd

При отсутствии аргументов читает с STDIN, пишет на STDOUT

$ cat

$ cat < /etc/passwd

$ cat > f.txt

$ cat < f.txt > f2.txt

Оператор >>

$ cat >> f2.txt

Оператор <<

$ cat > f2.txt <<FINISH

Файловый дескриптор номер 2 - STDERR

$ ls fhgfdgbdfhsd

$ ls errfilename > ls_res.txt

$ ls errfilename 2> ls_err.txt

$ ls /bin /errdirname > ls.txt 2>&1

$ ls /sdfgsdfgsd > /dev/null 2>&1

Перенаправление ввода/вывода между процессами, работающими на разных системах

# 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
<code>

rtf$ doc$



$ cat grep2.txt



jpg$ gif$



$ mkfifo findresult.fifo

$ find /usr/share/ > findresult.fifo &

$ cat grep*.txt | grep -f - findresult.fifo

$ rm findresult.fifo </code>

перенаправление_потоков_ввода_вывода.1329307921.txt.gz · Last modified: 2013/05/22 13:50 (external edit)