Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
spo_voprosy.docx
Скачиваний:
9
Добавлен:
20.03.2016
Размер:
465.35 Кб
Скачать

16.12. Примеры пайпов

who | wc

Как много пользователей находится в системе ?

[paul@RHEL4b pipes]$ who

root tty1 Jul 25 10:50

paul pts/0 Jul 25 09:29 (laika)

Harry pts/1 Jul 25 12:26 (barry)

paul pts/2 Jul 25 12:26 (pasha)

[paul@RHEL4b pipes]$ who | wc -l

4

who | cut | sort

Показать отсортированный список зарегистрированных пользователей.

[paul@RHEL4b pipes]$ who | cut -d' ' -f1 | sort

Harry

paul

paul

root

Показать отсортированный список зарегистрированных пользователей, но каждого пользователя показать только один раз.

[paul@RHEL4b pipes]$ who | cut -d' ' -f1 | sort | uniq

Harry

paul

root

grep | cut

Показать список всех учетных записей пользователей Bash на этом компьютере. Учетные записи пользователей будут подробно описаны позже.

paul@debian5:~$ grep bash /etc/passwd

root:x:0:0:root:/root:/bin/bash

paul:x:1000:1000:paul,,,:/home/paul:/bin/bash

serena:x:1001:1001::/home/serena:/bin/bash

paul@debian5:~$ grep bash /etc/passwd | cut -d: -f1

root

paul

serena

Глава 17. Основные инструменты Unix

В этой главе представлены команды, помогающие найти файлы или местонахождение файлов и сжать их с помощью инструментов, которые не обсуждались раньше. В то время как инструменты, обсуждаемые здесь, технически не считается фильтрами, они могут быть использованы в пайпах.

17.1. Find

Для поиска файлов иногда очень полезно найти команду в начале пайпа. Вот несколько примеров. Вы можете добавить 2>/dev/nullв командной строке, чтобы избежать загромождения экрана сообщениями об ошибках.

Найти все файлы в /etc и записать в файлetcfiles.txt

find /etc > etcfiles.txt

Найти все файлы всей системы и записать в файл allfiles.txt

find / > allfiles.txt

Найти файлы, оканчивающиеся на .conf в текущем каталоге (и всех подкаталогов).

find . -name "*.conf"

Найти файлы типа файл (не каталогов, пайпов или т.п.), которые заканчиваются на .conf

find . -type f -name "*.conf"

Найти файлы типа каталог, которые заканчиваются на .bak

find /data -type d -name "*.bak"

Найти файлы, которые новее file42.txt

find . -newer file42.txt

Также к каждому найденному файлу можно применить другую команду. В этом примере мы будем искать *.odfфайлы и копировать их в /backup/.

find /data -name "*.odf" -exec cp {} /backup/ \;

К каждому найденному файлу можно применить другую команду, но только после вашего подтверждения. В этом примере мы будем удалять *.odfфайлы, если вы одобряете операцию для каждого найденного файла.

find /data -name "*.odf" -ok rm {} \;

17.2. Размещение

Инструмент поиска сильно отличается от поиска, который использует индекс для поиска файлов. Это намного быстрее, чем обход всех каталогов. Если индекс не существует, то вы должны создать его (с правами администратора на RedHatEnterpriseLinux) с помощью командыupdatedb.

[paul@RHEL4b ~]$ locate Samba

warning: locate: could not open database: /var/lib/slocate/slocate.db:...

warning: You need to run the 'updatedb' command (as root) to create th...

Please have a look at /etc/updatedb.conf to enable the daily cron job.

[paul@RHEL4b ~]$ updatedb

fatal error: updatedb: You are not authorized to create a default sloc...

[paul@RHEL4b ~]$ su -

Password:

[root@RHEL4b ~]# updatedb

[root@RHEL4b ~]#

Большинство дистрибутивов Linux будет планировать запуск updatedb один раз каждый день.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]