Инструменты пользователя

Инструменты сайта


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

Это старая версия документа.


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

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

Номер   Название    Оператор
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 -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.txt

$ ls errfilename 2> ls.txt

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

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

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

Запуск процессов в фоновом режиме

$ nohup find / -name index.html > search.result.txt 2>/dev/null &
Ctrl-D

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

$ tar -c -f etc.tar etc/

$ tar -c -f - etc/ | cat > etc.tar

$ tar -c -f - etc/ | rsh -l user server 'cat > etc.tar'

$ tar -c -f - etc/ | ssh -l user server 'cat > etc.tar'

$ tar -c -f - etc/ | ssh user@server 'cat > etc.tar'

Именованные каналы

$ cat grep1.txt
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
перенаправление_потоков_ввода_вывода.1329306702.txt.gz · Последние изменения: 2013/05/22 13:50 (внешнее изменение)