Глава 17. Основные инструменты Unix
В этой главе представлены команды, помогающие найти файлы или местонахождение файлов и сжать их с помощью инструментов, которые не обсуждались раньше. В то время как инструменты, обсуждаемые здесь, технически не считается фильтрами, они могут быть использованы в пайпах.
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 {} \;
Размещение
Инструмент поиска сильно отличается от поиска, который использует индекс для поиска файлов. Это намного быстрее, чем обход всех каталогов. Если индекс не существует, то вы должны создать его (с правами администратора на Red Hat Enterprise Linux) с помощью команды 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 один раз каждый день.
Date
Команда date может отображать дату, время, часовой пояс и многое другое.
paul@rhel55 ~$ date
Sat Apr 17 12:44:30 CEST 2010
Строка даты может быть настроена для отображения формата по вашему выбору. Обращайтесь к странице руководства для других параметров.
paul@rhel55 ~$ date +'%A %d-%m-%Y'
Saturday 17-04-2010
Время на любой Unix рассчитывается в секундах, прошедших с 1969 года (первая секунда будучи первой секундой первого января 1970 года). Используйте date +%s для отображения времени Unix в секундах.
paul@rhel55 ~$ date +%s
1271501080
Когда счетчик секунд достигнет двух миллиардов?
paul@rhel55 ~$ date -d '1970-01-01 + 2000000000 seconds'
Wed May 18 04:33:20 CEST 2033
Cal
Команда cal отображает текущий месяц, текущая дата выделена.
|
|
paul@rhel55 ~$ cal
April 2010
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
Вы можете выбрать любой месяц в прошлом или будущем.
paul@rhel55 ~$ cal 2 1970
February 1970
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Sleep
Команда sleep иногда используется в скриптах, чтобы пользователь подождал n-ое количество секунд. Этот пример показывает, пять секунд ожидания.
paul@rhel55 ~$ sleep 5
paul@rhel55 ~$
Time
Команда time показывает, сколько времени потребуется, чтобы выполнить команду. Команда data занимает немного времени.
paul@rhel55 ~$ time date
Sat Apr 17 13:08:27 CEST 2010
Real 0m0.014s
User 0m0.008s
sys 0m0.006s
Команда sleep 5 занимает пять реальных секунд на выполнение, но занимает немного времени на исполнение процессором.
paul@rhel55 ~$ time sleep 5
real 0m5.018s
user 0m0.005s
sys 0m0.011s
Эта команда bzip2 сжимает файл и занимает много времени на исполнения процессором.
paul@rhel55 ~$ time bzip2 text.txt
real 0m2.368s
user 0m0.847s
sys 0m0.539s
Gzip - gunzip
Пользователю никогда не хватает места на диске, поэтому команда сжатия может пригодиться. Команда gzip может сжать файлы и они занимают меньше места.
paul@rhel55 ~$ ls -lh text.txt
-rw-rw-r-- 1 paul paul 6.4M Apr 17 13:11 text.txt
paul@rhel55 ~$ gzip text.txt
paul@rhel55 ~$ ls -lh text.txt.gz
|
|
-rw-rw-r-- 1 paul paul 760K Apr 17 13:11 text.txt.gz
Вы можете получить исходный файл назад с помощью команды gunzip.
paul@rhel55 ~$ gunzip text.txt.gz
paul@rhel55 ~$ ls -lh text.txt
-rw-rw-r-- 1 paul paul 6.4M Apr 17 13:11 text.txt
Zcat - zmore
Текстовые файлы, сжатые с gzipмогут быть просмотрены с помощью zcat и zmore.
paul@rhel55 ~$ head -4 text.txt
/
/opt
/opt/VBoxGuestAdditions-3.1.6
/opt/VBoxGuestAdditions-3.1.6/routines.sh
paul@rhel55 ~$ gzip text.txt
paul@rhel55 ~$ zcat text.txt.gz | head -4
/
/opt
/opt/VBoxGuestAdditions-3.1.6
/opt/VBoxGuestAdditions-3.1.6/routines.sh
Bzip2 - bunzip2
Файлы также можно сжать при помощи bzip2, которая занимает немного больше времени, чем gzip, но сжимает лучше.
paul@rhel55 ~$ bzip2 text.txt
paul@rhel55 ~$ ls -lh text.txt.bz2
-rw-rw-r-- 1 paul paul 569K Apr 17 13:11 text.txt.bz2
Файлы могут быть распакованы с помощью bunzip2.
paul@rhel55 ~$ bunzip2 text.txt.bz2
paul@rhel55 ~$ ls -lh text.txt
-rw-rw-r-- 1 paul paul 6.4M Apr 17 13:11 text.txt
Bzcat - bzmore
И таким же образом, и bzcat bzmore может отображать файлы, сжатые с помощью bzip2.
paul@rhel55 ~$ bzip2 text.txt
paul@rhel55 ~$ bzcat text.txt.bz2 | head -4
/
/opt
/opt/VBoxGuestAdditions-3.1.6
/opt/VBoxGuestAdditions-3.1.6/routines.sh
Part V. vi
Глава 18. Введение в vi
Редактор vi установлен почти на каждом Unix. Linux будет очень часто устанавливать vim (улучшенный VI), который в принципе аналогичен. Каждый системный администратор должен знать vi(m), потому что он является удобным инструментом для решения проблем. Редактор vi не является интуитивно понятным, но как только вы поймёте его, vi становится достаточно мощным приложением. Большинство Linux дистрибутивов включают vimtutor, который находится в 45 минутных уроках в vi (m).
|
|
Дата добавления: 2018-04-05; просмотров: 350; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!