- •II. First steps on the command line
- •5. Man pages
- •6. Working with directories (работа с папками)
- •7.Working with files
- •8. Working with file contents
- •9. The Linux file tree
- •III. Shell expansion
- •10. Commands and arguments
- •11. Control operators
- •12. Variables
- •13. Shell history
- •14. File globbing
- •IV. Pipes and commands
- •Глава 16. Фильтры.
- •16.3 Grep
- •16.7. Sort
- •16.8. Uniq
- •16.9. Comm
- •16.12. Примеры пайпов
- •Глава 17. Основные инструменты Unix
- •17.1. Find
- •17.2. Размещение
- •17.3. Date
- •17.5. Sleep
- •17.6. Time
- •17.7. Gzip - gunzip
- •17.8. Zcat - zmore
- •18.3. Замена и удаление символов (r X X)
- •18.4. Отменить и повторить (u .)
- •18.5. Вырезать, копировать и вставить строчки (dd yy p p)
- •18.6. Вырезать, копировать и вставить строчки (3dd 2yy)
- •18.8. Объединения двух и более линий (j)
- •18.9. Слова (w b)
- •18.10. Сохранить (или нет) и выход (:w :q :q! )
- •18.11. Поиск (/ ?)
- •18.13. Чтение файлов (:r :r !cmd)
- •19.1. Предпосылки
- •19.2. Hello World
- •19.4. Комментарии
- •20.2. Если, затем, иначе (if then else)
- •20.3. If then elif
- •20.4. For loop
- •20.5. While loop
- •21.2. Shift through parameters.
- •21.3. Runtime input.
- •21.3. Sourcing a config file.
- •21.5. Get script options with getopts.
- •21.6. Get shell options with shopt.
- •Глава 22 More scripting.
- •22.1. Eval.
- •22.4. Case.
- •22.5. Shell functions.
- •Раздел VII. Local user management. Глава 23. Users.
- •23.1. Identify yourself.
- •23.2. Users.
- •23.3. Passwords.
- •23.4 Home directories
- •23.5 User shell
- •23.6. Switcj users with su
- •23.7 Run a program as another user
- •23.10 Shell environment
- •Глава 24. Groups
- •24.1 About groups
- •24.2 Groupadd
- •24.3 /Etc/group
- •24.4 Usermod
- •24.5 Groupmod
- •24.6 Groupdel
- •24.7 Groups
- •24.8 Gpasswd
- •24.9 Vigr
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 один раз каждый день.