Глава 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!