Командная строка Linux. Полное руководство (Шоттс) - страница 43

>total 343496

>-rwxr-xr-x 1 root root 31316 2011-12-05 08:58 [

>-rwxr-xr-x 1 root root 8240 2011-12-09 13:39 411toppm

>-rwxr-xr-x 1 root root 111276 2011-11-26 14:27 a2p

>-rwxr-xr-x 1 root root 25368 2010-10-06 20:16 a52dec

>[me@linuxbox ~]$ tail -n 5 ls-output.txt

>-rwxr-xr-x 1 root root 5234 2011-06-27 10:56 znew

>-rwxr-xr-x 1 root root 691 2009-09-10 04:21 zonetab2pot.py

>-rw-r--r-- 1 root root 930 2011-11-01 12:23 zonetab2pot.pyc

>-rw-r--r-- 1 root root 930 2011-11-01 12:23 zonetab2pot.pyo

>lrwxrwxrwx 1 root root 6 2012-01-31 05:22 zsoelim -> soelim

Их также можно использовать в конвейерах:

>[me@linuxbox ~]$ ls /usr/bin | tail -n 5

>znew

>zonetab2pot.py

>zonetab2pot.pyc

>zonetab2pot.pyo

>zsoelim

Команда tail позволяет наблюдать, как изменяется содержимое файла в режиме реального времени. Эту ее особенность удобно использовать для наблюдения за появлением новых записей в файлах журналов. В следующем примере демонстрируется наблюдение за файлом messages в каталоге /var/log. В некоторых дистрибутивах Linux для этого требуется обладать привилегиями суперпользователя, поскольку файл /var/log/messages может содержать секретную информацию.

>[me@linuxbox ~]$ tail -f /var/log/messages

>Feb 8 13:40:05 twin4 dhclient: DHCPACK from 192.168.1.1

>Feb 8 13:40:05 twin4 dhclient: bound to 192.168.1.4 -- renewal in 1652 seconds.

>Feb 8 13:55:32 twin4 mountd[3953]: /var/NFSv4/musicbox exported to both 192.168.1.0/24 and twin7.localdomain in 192.168.1.0/24,twin7.localdomain

>Feb 8 14:07:37 twin4 dhclient: DHCPREQUEST on eth0 to 192.168.1.1 port 67

>Feb 8 14:07:37 twin4 dhclient: DHCPACK from 192.168.1.1

>Feb 8 14:07:37 twin4 dhclient: bound to 192.168.1.4 -- renewal in 1771 seconds.

>Feb 8 14:09:56 twin4 smartd[3468]: Device: /dev/hda, SMART Prefailure Attribute: 8 Seek_Time_Performance changed from 237 to 236

>Feb 8 14:10:37 twin4 mountd[3953]: /var/NFSv4/musicbox exported to both 192.168.1.0/24 and twin7.localdomain in 192.168.1.0/24,twin7.localdomain

>Feb 8 14:25:07 twin4 sshd(pam_unix)[29234]: session opened for user me by (uid=0)

>Feb 8 14:25:36 twin4 su(pam_unix)[29279]: session opened for user root by me(uid=500)

При вызове с параметром -f команда tail продолжает следить за файлом и при добавлении в конец этого файла новых строк немедленно выводит их. Так продолжается до тех пор, пока пользователь не нажмет комбинацию клавиш CTRL-C.

tee — чтение со стандартного ввода и запись в стандартный вывод и в файлы


Linux предоставляет команду tee, которая создает Т-образное разветвление в конвейере. Программа tee читает данные со стандартного ввода и копирует их в стандартный вывод (чтобы дать возможность передать их дальше по конвейеру) и в один или несколько файлов. Это может пригодиться для сохранения промежуточных результатов обработки в конвейере. Ниже, продолжая один из предыдущих примеров, мы сохраним полный список файлов в каталогах в файле ls.txt, перед тем как он будет отфильтрован командой grep: