WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 | 2 || 4 | 5 |   ...   | 7 |

«Ubuntu® Linux® TOOLBOX 1000+ Commands for Ubuntu and Deblan Power Users Christopher Negus Franois Caen 81C8NT8NNIAL 1807. ...»

-- [ Страница 3 ] --

$ sudo fi nd /etc · type f · ехес md5sum {} \ ;

> /tmp/mdS. l i st 2> /dev/nul l В результате выполнения предыдущей команды создается файл /tmp/md5. 1 i st, содержащий 1 2 8 - б итную контрольную сумму для каждого файла каталога / etc.

Теперь, чтоб ы определить, б ыли ли изменены какие-ли б о из этих файлов, вы мо­ жете в любой момент выполнить следующую команду:

$ cd /etc s md5sum · с /tmp/md5. l i st 1 grep · v ок · ·. / hosts. a l 1 ow : FAI LED md5sum : WARN I NG : 1 of 1668 computed checksums d i d NOT match Как вы можете заметить, в данном случае б ыл изменен лишь один файл (hosts.

а 1 1 ow), поэтому теперь необ ходимо будет проверить измененный файл и опреде­ лить, б ыли ли эти изменения намеренными.

Резюме В Linux существуют десятки команд, предназначенных для получения информа­ ции о файлах и работы с ними. Такие команды, как chmod, могут изменять права доступа к файлам, тогда как команды наподоб ие 1 sattr и chattr могут использо­ ваться для просмотра и изменения атри б утов, связанных с такими файловыми системами, как ext2 и ехtЗ.

Для навигации по файловой системе наи более часто используется команда cd, однако для повторяющегося передвижения по одним и тем же каталогам вы може­ те использовать команды pushd и popd, позволяющие работать с хранилищем ката­ логов.

Копирование файлов чаше всего осуществляется с помощью команды ер, одна­ ко для копирования файлов (таких как об разы дисков) с устройства (например, CD-R O M ) может б ыть использована и команда dd. Для создания каталогов вы можете использовать команду mkdi r.

Чтоб ы не создавать множество копий одного и того же файла, раз бросанных по всей системе, вы можете воспользоваться символьными и жесткими с.сылками, позволяющими закрепить за одним файлом или каталогом несколько имен. Сим­ вольные ссылки могут присутствовать где угодно в системе, в то время как жесткие ссылки должны находиться на одном разделе с файлом-оригиналом.

Для поиска файлов в Linux используются команды 1 ocate и fi nd, а для проверки подлинности файлов, загружаемых из Интернета, - команды md5s um и s h a 1 s um.

5 Об ра б от ка те ксто в о й и н ф орма ц и и Использование первых UNIХ-систем (на которых б ыла основана Linux), управ­ ляемых только с помощью командной консоли, требовало тесной работы с коман­ дами и простыми текстовыми файлами. Документы, исходный текст, файлы кон­ фигурации, электронная почта и почти все создаваемые или настраиваемые вами элементы системы представлены в виде текстовых файлов. Для работы с подоб ны­ ми файлами разраб отчики того времени создали множество приложений, позво­ ляющих редактировать текст.

Несмотря на наличие графических приложений для работы с текстом, наи более опытные пользователи Linux считают приложении для командной строки более эффективными и удо б ными. Текстовые редакторы vi (vim), Emacs, J O E, nano и Pico доступны на б ольшинстве дистри бутивов Linux. Такие команды, как g rep, sed и awk, могут б ыть использованы для поиска и, возможно, изменения фрагмен­ тов информации, содержащихся в текстовых файлах.

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

Поиск в тексте с помо щ ь ю ре гул ярны х....

в ы ра жении Многие приложения, предназначенные для работы с текстом, позволяют исполь­ зовать регулярные вьtра:жения (regular expressions), иногда называемые regex, для поиска необ ходимого текста на основе определенной схемы. Эти выражения могут использоваться для поиска текста внутри текстового редактора или же, в совокуп­ ности с командами поиска, для сканирования большого количества файлов на на­ личие нужных строк.

Схема поиска regex может основываться на конкретной текстовой строке (или всего одном слове, например L i nux) или месторасположении (например, конец строки или начало слова). Поиск может б ыть узким (найти именно слово hel l o) Редактирование текстовых файлов или б олее широким (найти лю б ое слово, начинающееся н а h и заканчивающее­ си на о).

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

В табл. 5. 1 приведены примеры использования некоторых регулярных выраже­ ний для поиска нужных строк в тексте. Многие из представленных здесь примеров используются в примерах на протяжении всей главы.

Помните, что не каждая команда, основывающаяся на геgех, одинаково исполь­ зует его элементы.

Таблица 5.1. Поиск с помощью регулярных выражений Результат nоиска Выражение а, аЬ, аЬс и aecjejich а* «а», находящееся в начале строки Любое ла «а», находящееся 11 конце строки *а$ Любое Трехсимвольные строки, начинающиеся с «а» и эаканчивающиеся на «С» а.с [Ьcf]at Ьаt, cat или fat aat, Ьаt, cat, dat, но не Aat, ваt и т. д.

[a-d]at Aat, ваt, cat и Dat, но не aat, Ьаt и т. д.

[A-D]at 137, 147 и 1 1[3-5] Символ табуляции, предшествующий слову hello \tHello.txt,.ТХТ,.ТхТ или другие сочетания на основе изменения регистра \. [tТ][хХ][тt] Реда кт и рование текстовых файлов В мире LinuxjUNIX используется множество текстовых редакторов. Наи б олее широко используемым из них является редактор vi, который можно найти прак­ тически на люб ой современной операционной системе UNIX. Именно поэтому умение редактировать даже незначительный текстовый файл в vi является обяза­ тельным требованием для администратора Linux. Если однажды вам придется вос­ станавливать онлайн-подключение в незнакомой среде, vi может оказаться прило­ жением, которое всегда будет под рукой.

Уб едитесь, что в вашей версии U b untu установлен расширенный пакет vim.

Редактор vim представляет соб ой наиб олее современный, с б ольшим количеством функций и дружественный пользователю редактор' vi. Для получения б олее по­ дроб ной информации по использованию vi ознакомьтесь с Приложеннем 1.

ПРИМЕЧАНИЕ -------­ UЬuпtu устанавливает vim по умолчанию.

112 Глава 5. Обработка те кстовой информации Традиционно, другим популярным текстовым редактором для 'UNIX является Emacs и его вариант, более ориентированный на графическую оболочку, XEmacs. Emacs является мощным многофункциональным приложением, которое также может служить для чтения почты или новостей, а также выполнять другие функ­ ции. Emacs также известен своими очень сложными клавнатурными сокращения­ ми, для своб одной раб оты с которыми необ ходимо иметь три руки.

В середине 1 990-х годов Emacs иревзошел vi в отношении характеристик. Сей­ час же, когда широко распространен vim, оба редактора способ ны предоставлять люб ые необ ходимые функции. Если вы еще недостаточно хорошо знакомы с vi и Emacs, мы рекомендуем вам начать с изучения vi.

В Linux существует много других команд и приложений GUI для редактирова­ ния текста. Среди консольных редакторов, которые могут вам показаться проще в об ращении, чем vi или Emacs, можно выделитьjЕD,JОЕ и nano. Запустите любой из этих редакторов, указав в командной строке его название, при желании дополнив его в конце именем файла, который хотите отредактировать. В следующих подраз­ делах дано короткое описание использования каждого из перечисленных выше редакторов.

Испопьзование реда ктора ЗО Е Если вы ранее пользавались классическими текстовыми процессорами, например Word Star, раб отающими с текстовыми файлами, вам будет комфортно раб отать и в редакторе J О Е. Для его использования установите программный пакет J О Е.

Для использования средства проверки орфографии в J ОЕ уб едитесь, что установ­ лен программный пакет aspell (U buntu устанавливает его по умолчанию). Для уста­ новки jОЕ выполните следующую команду:

$ sudo apt - get i nstal l joe Для перемещения по файлу в редакторе J О Е предназначены знаки управления и клавиши управления курсором. Чтоб ы открыть текстовый файл для редактиро­ вания, просто введите команду j oe и имя необ ходимого файла или воспользуйтесь одной из следующих команд:

$ joe memo. txt Открывает файл memo. txt для редактирования $ joe - wordwrap me.a. txt Включает ав тома тический перенос в процессе редактирования $ joe · l margi n 5 - tab 5 memo. txt Ус танавливает левую границу в положение 5. а з на чение табуляции на $ joe +25 memo. txt На чинает редактирование на с троке Чтоб ы добавить текст, просто начните печатать. Для многих функций редактор поддерживает клавнатурные сокращения. Используйте клавиши со стрелками для передвижения курсора влево, вправо, вверх или вниз.. Используйте клавишу Delete для удаления текста под курсором или Backspace для удаления текста слева от курсора. Нажмите Enter для переноса строки. Для вызова справки используйте сочетание клавиш Qri+K+H. В табл. 5. 2 приведены наи б олее о б щие примеры ис­ пользования сочетаний клавиш для редактирования текста в J О Е.

1 Редактирование текстовых файлов Тр бпица 5.2. Сочетания клавиш, предназначенные для редактирования в JOE Реэупьтат исnопьэования Сочетание кпавиw Перемещение курсора Влево Ctri+B Вверх Ctri+P Вправо Ctri+F Вниз ctri+N Предыдущее слово Ctri+Z Следующее слово Ctri+X Поиск Найти текст Ctri+K+F Найти далее Ctri+L Абзац Переместиться в начало абзаца Ctri+K+B Переместиться в конец абзаца Ctri+K+K Переместить блок Ctri+K+M Скопировать блок Ctri+K+C Записать блок в файл Ctri+K+W Удалить блок Ctri+K+Y Установить ф ильтр Ctri+K+/ Раэное Центральная строка Ctri+ K+A Параметры Ctri+T Обновить информацию Ctri+ R Файп Открыть новый файл для редактирования Ctri+K+E Вставить файл на место расположения курсора Ctri+K+R Сохранить Ctri+K+D Переход Предыдущий экран Ctri+U Следующий экран ctri+V Начало строки Ctri+A Конец строки Ctri+E Начало файла Ctri+K+U Конец файла ctri+K+V Перейти к строке номер Ctri+K+L Удапение Удалить символ Ctri+D Удалить строку Ctri+Y Удалить слово справа Ctri+W Продолжение rP 1 14 Глава 5. Обработка текстовой информации Табпица 5.2 (продолжение) Сочетание ICII a виw Результат исnопЬ30вания Удалить слово слева Ctri+O Ctri+J Удалить строку справа Ctri+­ Отменить действие Ctrl+ б Вернуть действие Выход Сохранить и выйти Ctri+K+X Ctri+C Отменить Выйти в консоль Ctri+ K+Z Проверка nравоnисания Ctri+[+N Слово Файл Ctri+[+L Работа с реда кторами Pico и nano Pico - это популярный неб ольшой текстовый редактор, распространяемый как часть почтового клиента Pine. Хотя Pico является бесплатной программой, его код не открыт. Именно поэтому многие дистри бутивы Linux, включая U b untu, не пре­ доставляют по умолчанию Pico. Вместо него они предлагают клон Pico с открытым исходным кодом, называемый nano (nano - еще один редактор;

от англ. another).

В этом подразделе описывается именно этот редактор.

ПРИМЕЧАНИЕ -------­ Команда pico в Ubuпtu ссылается на редактор nano.

Редактор nano (представленный командой nano) является компактным тексто­ вым редактором, который запускается из командной консоли и рассчитан на рабо­ ту с экраном (поскольку он ориентирован на раб оту с регистром). Nano популярен среди тех, кто раньше использовал почтовый клиент Pine, так как nano использует те же инструменты редактирования, что и Pico. В некоторых редких случаях, когда в системе Linux недоступен редактор vi (если, например, вы устанавливаете мини­ мальный набор приложений Gentoo Linux), nano все равно будет доступен. Ubuntu устанавливает nano по умолчанию. Для осуществления проверки правописания в редакторе nano используется команда s pe l l, а не a s pe l l.

Как и в случае с редактором jОЕ, редактор nano не требует выполнения специ­ альных команд для начала редактирования - открыв документ, вы можете сразу начинать печатать. Чтоб ы открыть текстовый файл для редактирования, просто введите команду nano и имя файла или воспользуйтесь одним из следующих пара­ метров:

Открывает файл memo. txt для редактирования $ nano rnemo. txt $ nano · В memo. txt При сохранении осущес твляет резервное копирование предыдущего варианта в файл -. имя файла Включает управление курсором с помощью мыши $ nano - m memo. txt (если э то поддерживае тся ) На чинае т редактирование со с троки $ nano +83 memo. txt Редактирование текстовых файлов Параметр - m командной строки активизирует поддержку мыши, которая может б ыть использована для вы бора позиции курсора в тексте. Следует помнить, что, если дважды щелкнуть кнопкой мыши на тексте, будет выделен целый его блок, что не всегда удоб но.

Чтоб ы перемешать курсор влево, вправо, вверх или вниз, используйте клавиши со стрелками. Используйте клавишу Delete для удаления выделенного текста под курсором или 8ackspace для удаления текста слева от курсора. Для переноса стро­ ки нажмите клавишу Enter. Для вызова справки используйте сочетание клавиш Ctri+G. В табл. 5.3 приведены сочетания клавиш, используемые nano (их описание также содержится в справке nano).

Та&nица 5.3. Сочетания клавиш, испольэуемые для редактирования в папо Функционаnьная Описание Сочетание кпавиw кпавиwа Показывает текст помощи (для выхода нажмите Ctrl+x) F Ctri +G Выходит из папо (или закрывает текущий буфер файла) F Ctri+X Сохраняет текущий файл FЗ Ctri+O Выравнивает текст в текущем абзаце F Ctri+J Вставляет текст в текущий файл FS Ctri+R Запускает поиск в тексте Fб Ctri+W F Ctri+Y Переходит предыдущему экрану к Переходит к следующему экрану FB Ctri+V В!>rреэает (и помещает в буфер обмена) текущий файл F Ctri+K или выделенный текст Вставлят в файл ранее вырезанную строку F Ctri+U Отображает текущее положение курсора F Ctri+C F12 Начинает проверку правописания Ctri+T Переходит к выделенной строке и номерам столбцов Ctri+­ Ищет и заменяет текст Ctrl+\ Выделяет текст начиная от места расположения курсора Ctrl+ б (для снятия выделения нажмите Ctrl+ б) Перемещает курсор на один символ вперед Ctri+ F Перемещает курсор на один символ назад Ctri+B Перемещает курсор на одно слово вперед Сtri+Пробел Перемещает курсор на одно слово назад Аlt+Пробел Перемещает курсор на предыдущую строку Ctri+P Перемещает курсор на следующую строку Ctri+N Перемещает курсор в начало текущей строки Ctri+A Перемещает курсор в конец текущей строки Ctri+E Перемещает курсор в начало текущего абзаца Alt+( Перемещает курсор к концу текущего абзаца Alt+) Перемещает курсор к первой строке файла Alt+\ Перемещает курсор к последней строке файла Alt+/,Продолжение rP 116 Глава 5. Обработка текстовой информации Таблица 5.3 (продолжение) Функционаnьная Оnисание Сочетание кпавиwа кпавиw Перемещает курсор ко второй скобке Alt+] Alt+= Прокручивает текст вниз на одну строку Перемещает строку вверх Alt+ Графические текстовые реда кторы Сам факт редактирования текста не означает, что вы используете именно кон­ сольный редактор. Основные преимущества использования графических тексто­ вых редакторов состоят в том, что вы можете использовать мышь для выбора меню, выделять, вырезать, копировать текст и пользоваться специальными расшире­ ниями.

Если на вашей операционной системе Linux установлена графическая оболочка GNOME, то наверняка у вас установлен и текстовый редактор для GNOME (gedit).

Инструменты gedit позволяют осуществлять проверку правописания, отображать статистику документа, изменять шрифты и цвета и распечатывать документы.

В оболочке Рабочего стола KDE также присутствует собственный текстовый редак­ тор KDE (kedit в программнам пакете kdeutils). Он предоставляет тот же набор функций, что и текстовый редактор GNOME, а также некоторые дополнительные, например возможность отправлять документы с ш;

>мощью kmail или другого кон­ фигурируемого пользователем компонента KDE.

Сам по себе редактор vim входит в версию Х GUI. Он запускается с помощью команды gvi m, являющейся частью программнога пакета vim-X 1 1. Если вы хотите сделать vim для GUI более удобным, то загрузите конфигурацию Cream с сайта http://cream.sourceforge.net/.

ПРИМЕЧАНИЕ -------­ Для использования gvim вам придется установить дополнительный пакет - vim-gпome.

Среди других графических текстовых редакторов, которые вы можте устано­ вить, можно назвать nedit (предоставляет инструменты для использования макро­ сов и выполнения консольных команд и ориентирован на разработчиков программ­ наго обеспечения) и leafpad (предоставляет те же инструменты, что и Windows Notepad). Текстовый редактор Scribes (scribes) предоставляет некоторые специ­ альные инструменты для автоматического исправления, замены, сдвига и допол­ нения слов.

Отобра же ни е, упоря дочивани е и реда кт ировани е текста Помимо обычного редактирования отдельных текстовых файлов, для отображения, поиска и управления содержимым одного или более текстовых файлов одновре;

менно вы можете использовать большое количество команд, доступных в Linux.

Отображение, упорядочивание и редактирование текста гображение текстовых файлов Основным способом просмотра содержимого текстового файла является выпол­ нение команды cat. Команда cat конкатенирует (или выводит данные в виде стро­ ки символов) содержимое текстового файла на экран (по умолчанию). Чтобы раз­ личными способами выводить содержимое файла, вы можете использовать различные метасимволы командного процессора:

$ cat myfi l e. txt Отображае т содержимое файла на экране $ cat myfi l e. txt > copy. txt Отправляет содержимое файла в другой файл myfi l e. txt >> myotherfi l e. txt Прикрепляет содержимое файла к другому файлу cat $ Отображает последова тельные пус тые с троки как одну $ cat - s myfi l e. txt $ cat n myfi l e. txt Показывае т нонера с трок с выводиными данными $ cat · Ь myfi l e. txt Отображает нонера толь ко для з аполненных с трок Однако если блок вашего текста превышает длину нескольких строк, исполь­ зование команды cat становится нецелесообразным. В этом случае для просмотра всего текста или его пролистывания вам понадобится приложении более высокого уровня.

Для просмотра файла с его начала используйте команду head:

$ head myfi l e. txt $ cat myfi l e. txt 1 head В обеих командных строках для отображения первых десяти строк файла ис­ пользуется команда head. Для выведения любого количества строк от начала фай­ ла вы можете определить их количество в качестве параметра:

$ head · n 50 myfi l e. txt Отображает первые 50 строк файла $ ps auwx 1 head - n 15 Выводит первые 1 5 с трок выхода команды ps Выполнить это можно также с помощью следующего устаревшего (но более короткого) синтаксиса:

$ head · 50 myfi l e. txt $ ps auwx 1 head · Для аналогичного просмотра конца файла предназначена команда ta i 1 :

$ tai l · n 15 myfi l e. txt Отображает последние 1 5 строк файла $ tai l · 15 myfi l e. txt Выводит последние 1 5 строк файла $ ps auwx 1 tai l - n 15 Отображае т последние 15 с трок выхода команды ps Команда ta i 1 также может использоваться для непрерывного просмотра конца файла, когда файл создается другой программой. Это очень полезно для чтения файлов журнала в режиме реального времени во время поиска и устранения неис­ правностей в apache, sendmail и многих других системных службах:

# tai l · f /var/l og/messages Просма тривает сис темные сообщения в режиме реаль ного времени # tai l · f /var/l og/mai l l og Просма тривает сообщения поч тового сервера в режиме реаль ного времени # tai l · f /var/l og/httpd/access_l og Просма тривает сообщения веб -сервера в режиме реаль ного времени 1 18 Глава s. Обработка текстовой информации Посr раничный просмотр всего тексrа Когда у вас есть большой фрагмент текста и вам нужно просмотреть не только его начало или конец, потребуется приложение длв постраничного просмотра текста.

Изначально системной программой UNIX, предназначенной для постраничного вывода на экран текста, была команда more:

$ ps auwx 1 more 1 Пос транично о тображае т выход ps (для о тображения следующей с траницы нажните Пробел ) $ more myfi l e. txt Постранично о тображае т содержиное файла Однако у команды more есть некоторые ограничения. Например, в первой коман­ де, представленной выше, more не может осуществлять прокрутку вверх. Команда 1 ess была изначально создана как более эффективная и ориентированная на поль­ зователя, чем more. При описании команды 1 ess обычно говорят: • What is less? less is more ! • (дословно: •Что такое меньше (less)? Меньше - это больше (more)• ).

Мы рекомендуем вам вместо команды more всегда использовать команду 1 ess.

ПРИМЕЧАНИЕ -------­ Команда less обладает еще одним преимуществом, заслуживающим внимания.. В отличие от тексто­ вых редакторов (например, vi), она не прочитывает весь файл сразу при его загрузке, что позволя­ ет быстро загружать и отображать содержимое больших файлов.

В приведеиных ниже примерах команда l es s используется с тем же синтакси­ сом, что и more:

$ ps auwx 1 l ess Пос транично о тображает выход конанды ps $ cat myfi l e. txt 1 l ess Пос транично о тображае т Содержиное файла $ l ess myfi l e. txt Пос транично о тображае т текс товый файл Команда 1 ess позволяет перемещатьсв по файлу с помощью клавиш управле­ ния курсором t и.J.., а также клавиш Page Up, Page Down и Пробел. Если вы исполь­ зуете команду 1 es s по отношению к файлу, то, чтобы открыть его в редакторе, на­ жмите клавишу V. Тип используемого в данном случае редактора будет определен исходя из переменных среды, заданных для вашей учетной записи. Редактор бе­ рется из переменной среды V I SUAL, если она определена, или EDI ТOR, если редактор V I SUAL не определен. Если ни один из редакторов не определен, l ess использует редактор JОЕ (в Ubuntu).

ПРИМЕЧАНИЕ ----- 8 подобном случае в других версях Unux в качестве редактора по умолчанию эадействуется vi.

Для выхода из режима просмотра файла нажмите сочетание клавиrn Cti'I+C. Как и в редакторе vi, при просмотре файла с помощью команды 1 e s s поиск строки осуществляется нажатием клавиши 1, после чего требуется ввести искомую строку и нажать клавишу Enter. Для вывода остальных найденных строк последовательно нажимайте клавиши 1 и Enter.

Для перемещенив по тексту вперед и назад используйте клавиши F и В соот­ ветственно. Например, десять нажатий клавиши F переместит вас на десять строк вперед, а 1 5 нажатий клавиши В - на 1 5 строк назад. Для перемещения на полови 1 Отображение, упорядочивание и редактирование текста ну экрана вниз преднаэначена клавиша D, а для перемещения на половину экрана вверх - клавиша U.

1эбиен и е текста на страницы Команда pr предоставляет возможность быстро форматировать фрагмент текста для подготовки его к последующему выводу на печать. Она может быть особенно полезна, если требуется распечатать результаты выполнения каких-либо команд без необходимости запускать программу для редактирования или текстовый ре­ дактор. Используя команду pr, вы можете раэбивать текст на части, добавляя в за­ головок каждой страницы текущую дату, время, имя файла и номер страницы:

$ dpkg - query · 1 1 sort 1 pr · · co1 um2 1 1 ess Разбивает список программных паке тов на два с толбца В данном примере команда rpm - qa отображает список всех программных паке­ тов, установленных ;

вашей системе, передает этот список команде sort, чтобы рассортировать его в алфавитном порядке, затем направляет этот список команде pr, преобраэует его список в список из двух столбцов ( - - со 1 umns=2) и разбивает его.

В результате выполняется команда 1 es s, позволяя вам просмотреть отформатиро­ ванный текст.

Вы также можете направить выводимую информацию в файл или на печать, не просматривая ее:

Направляет выход pr в файл $ dpkg - query · 1 1 sort 1 pr · · co1 um2 > pkg. txt Направляет выход команды pr $ dpkg· query · 1 1 sort 1 pr · · co1 um2 1 1 pr на прин тер Другие операции с текстом, которые вы можете выполнять с помощью коман­ ды pr, включают в себя увеличение междустрочного интервала в два раэа (пара­ метр - d), отображение управляющих символов ( параметр - с ) и смещение текста на определенное количество знаков от левого края (например, параметр - о 5 позво­ ляет сместить текст на пять знаков).

оиск в тексте Команда grep очень удобна, если необходимо выполнить сложный поиск строк в файле. На самом деле выражение •to grep• уже вошло в компьютерный жаргон, как и •to Google• ( •гуrлить• ) - в популярный. Вот примеры использования ко­ манды g rep:

Показывает с троки. содержащие слово franco i s $ grep francoi s myfi 1 e. txt # Показывает с троки. содержащие число grep 404 /var/1 og/httpd/access_1 og $ ps auwx 1 grep i ni t Показывает с троки i n i t из выхода ps Показывает команды. заключенные в скобки $ p s auwx 1 grep " \ [*\] " Показывает информацию об устройс тве ядра ata $ dmesg 1 grep " [ ] ata\ l "ata " У этих командных строк, помимо того, что они являются примерами исnользо­ вания команды g rep, есть некоторые частные случаи применения. Выполнив поиск 120 Глава 5. Обработка текстовой информации числа 404 в файле access_l og, вы сможете просмотреть запросы на поиск ненайденных страниц, поступивших на веб-сервер на страницы (возможно, кто-то пытается использовать вашу систему или веб-страницу, которую вы переместили или забы­ ли создать). Отображение строк выхода команды ps, заключенных в скобки, позво­ ляет просмотреть команды, параметры которых команда ps отобразить не может.

Последняя команда проверяет защитное кольцо ядра на наличие любой информа­ ции о любых устройствах АТА, таких как жесткие диски или СD-приводы.

Команда g rep способна также осуществлять одновременный рекурсивный по­ иск нескольких файлов. Следующая команда осуществляет рекурсивный поиск строки Vi rtu a l Host в каталогах /etc/ httpd /conf и /etc/ httpd/conf. d:

$ grep · R Vi rtual Host /etc/httpd/conf* Стоит отметить, что в каталоге /etc/ httpd может не быть файлов, начинающих­ ся с conf: это зависит от состава установленных у вас проrрамм. Эта же техника может быть применена и к другим файла.

Чтобы найти конкретные строки, в которых встречается элемент поиска, до­ бавьте в команду g rep номера строк ( параметр - n):

$ grep - Rn Vi rtual Host /etc/httpd/conf* Чтобы разбить найденные данные на столбцы разного цвета, добавьте пара­ метр - - col or:

$ grep - - col or - Rn Vi rtual Host /etc/httpd/conf* По умолчанию в многофайловом поиске имя файла отображается для каждого результата поиска. Чтобы отключить вывод имен файлов, используйте параметр - h. Следующий пример демонстрирует выполнение поиска строки sshd в файле a uth. l og:

$ grep - h sshd /var/l og/auth. l og Если вы хотите сделать поиск сообщений нечувствительным к используемому регистру, используйте параметр - i :

$ grep. ;

sel i nux /var/l og/messages Ище т в файле слово se l inux (независино о т регистра ) Для отображения только имен включенных в поиск файлов добавьте к коман­ де параметр - l :

$ grep · Rl Vi rtual Host /etc/httpd/conf* Для отображения всех строк, которые не содержат указываемое сочетание, добавьте параметр - v:

$ grep -v 200 /var/l og/httpd/access_l og* Отображает с троки.

не содержащие число ПРИМЕЧАНИЕ -------­ При передаче выводимых данных иэ ps в grep для предотвращения появления процесса grep в ре­ зультатах поиска применяют одну хитрость: # ps auwx 1 grep "[i]пit".

Отображение, упорядочивание и редактирование текста О предепение количесr ва эл ементов Иногда необходимо знать количество строк, содержащихся в искомом фрагменте текста. Команда wc позволяет подсчитывать количество полученных строк. Напри­ мер, следующая команда отображает количество записей конкретного I Р-адреса в файле журнала Apache:

$ grep 192. 198. 1. 1 /var/1 og/httpd/access - 1 og 1 wc - Команда wc может быть использована и для других целей. По умолчанию она отображает количество строк, слов и байт в файле:

Отображает счетчики для одного файла $ wc /var/1 og/dmesg 436 3847 27984 /va r/ 1 og /dmesg $ wc /var/1 og/*. 1 og Отображает о тдель ные з на чения для каждого файла и общие для всех файлов 3764 257 72 /var/ 1 og / a uth. 1 og 780 3517 36647 / v a r / 1 og / bootstra p. 1 og 350 4405 39042 / v a r / 1 og /daemon. 1 og 10109 60654 669687 / v a r / 1 og /dpkg. 1 og 71 419 4095 / va r/ 1 og/ fontconfi g. 1 og 1451 19860 135252 / va r/ 1 og /kern. 1 og О / v a r/ 1 og / 1 p r. 1 og О О О О О /va r / 1 og/ma i 1. 1 og О О / v a r / 1 og/pycent ra 1. 1 og О О О / va r / 1 og / scro1 1 keeper. 1 og О 108 1610 13864 / v a r / 1 og / user. 1 og О / v a r / 1 og / uucp. 1 og О О 12 43 ЗОВ /var/ 1 og/wvdi a 1 conf. 1 og 6717 461 10 / v a r / 1 og / Xorg. О. 1 og 14076 100989 970777 tota Упорядочивание выводимых дан н ых Вам также может попадобиться сортировать содержимое файла или резуJIЬтат выполиенив какой-либо команды для упорядочивания неорганизованно выводи­ мых данных. Следующие примеры отображают названия всех установленных на данный момент программных пакетов RPM, отбирают из них все, содержащие в на­ звании слово kerne 1, и отображают полученные результаты в алфавитном порядке (прямом и обратном):

$ dpkg - query -1 1 grep kerne1 1 sort Отображает в прянон алфав и тнон порядке $ dpkg - query - 1 1 grep kerne1 1 sort - r Отображает в обра тн он алфави тнон порядке Следующая команда сортирует процессы по уровню испоJIЬзованив памяти (четвертое поле выхода команды ps ). Параметр k используется для указания поля, используемого для сортировки. Запись 4. 4 показывает, что именно четвертое поле (и только оно) является ключевым.

$ ps auwx 1 sort - r - k 4, 122 Глава 5. Обра ботка тексто вой информации Следующая команда отображает загруженные модули ядра в порядке увели­ чения их размера. Параметр n указывает команде sort на необходимость интерпре­ тировать второе поле как номер, а не как строку:

$ l smod 1 sort · k 2, 2n П о иск текста в бинарн ых файпах Иногда возникает необходимость прочесть текст в кодировке ASCII, находящийся внутри бинарного файла, что позволяет узнавать много информации об исполняе­ мом файле. В этих случаях для извле'lения любого доступного для чтения текста ASCII используйте команду stri ngs. Эта команда является частью программнога пакета blnutils и устанавливается в Ubuntu по умолчанию. Вот несколько прнмеров ее использования:

$ stri ngs /bi n/l s 1 grep · i l i bc Определяет наличие l ibc в l s $ cat /bi n/ l s l stri ngs Отображае т все тексты ASCII в ls $ stri ngs /bi n/ l s Отображает все тексты ASCII в l s Замена текста Поиск текста в файле часто является первым шагом перед его заменой. Для редак­ тирования потоков текста предназначена команда sed. Команда sed является пол­ ноценным языком сценариев. В примерах, которые приводятся ниже, раскрывают­ ся основные принципы замены текста с помощью команды sed.

Если вы хорошо знакомы с командами редактора vi, позволяющими заменять текст, то sed покажется вам похожим на них. Команда, приведеиная в следующем примере, заменяет только первый случай употребления слова francoi s на chri s для каждой строки. Здесь команда sed получает данные из канала и выводит их через stdout (экран монитора):

$ cat щyfi l e. txt 1 sed s/francoi s/chri s/ Если добавить в конец строки замены параметр g, как в следующей команде, то словом chri s будеi заменен каждый случай употребления слова francoi s. В следую­ щем примере ввод даных производится из файла myfi 1 е. txt, а выход направляется в файл mynewfi 1 е. txt:

$ sed s/ francoi s/chri s/g < myfi l e. txt > щynewfi l e. txt В следующем примере первые случаи употребления текста / home/ bob заменяют­ ся текстом / home2/ bob из файла 1 etc /pas swd fi 1 е (необходимо отметить, что данная команда не изменяет файл, а лишь выводит измененный текст). Она может приrо­ диться, например, если учетные записи пользователей были перенесены в новый каталог (или на новый диск), назваюtый случайно home2. Здесь, чтобы избежать использования 1, применяются кавычки и \, которые не являются знаками-разде­ лителями:

$ sed ' s/\/home\/boЬI\/ home2\/boЬ/g ' < /etc/passwd Отображение, упорядочивание и редактирование текста · Хотя 1 является знаком-разделителем команды 5ed по умолчанию, вы можете назначить вместо него тобой другой символ. Изменение знака-разделителя может упростить работу с командой, если в строке содержатся знаки 1. Например, преды­ дущая команда, в которой содержится путь, может быть заменена любой из сле­ дующих:

$ sed ' s - /home/ЬoЬI - /home2/boЬ/ - ' < /etc/passwd $ sed ' sD/home/boЬID/home2/boЫD ' < /etc/passwd В первом примере знак дефис ( - ) используется в качестве знака-разделителя.

Во второй строке роль разделителя выполняет буква D.

Команда 5ed может одновременно выполнять несколько замен, если перед каждой из них использовать параметр - е. Ниже, в тексте, извлеченном из файла myfi 1 е. txt, все случаи употребления francoi 5 были изменены на FRANCO I S, а chri 5 на CHR I S:

-е -е $ sed s/ francoi s/FRANCOIS/g s/chri s/CHRIS/g < myfi l e. txt Кроме того, команда 5ed может использоваться для добавления в текстовый поток символов перехода на новую строку. При появлении в ходе выполнения команды слова Enter нажмите клавишу Enter. Символ > во второй строке сгенери­ рован консолью bash, его вводить не нужно.

$ echo аааЬссс 1 sed ' s/Ы\Enter > /' ааа се с Тем не менее, если вам понадобится заменить символы перехода на новую стро­ ку, воспользуйтесь командой tr.

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

$ 1 s 1 tr ' \n ' ' ' Заменяет символы перехода на новую с троКУ пробелами Команда tr может использоваться для замены одного символа другим, но, в от­ личие от 5ed, она не работает со строками. Следующая команда заменяет все про­ писные буквы cf-. заглавными.

$ tr f F < myfi l e. txt Заменяет каждую f в файле на F Вы также можете использовать команду t r для удаления символов:

$ l s 1 tr - d ' \n ' Удаляет з наки перехода на новую строку (образуя на выходе одну с троКУ ) $ t r - d f < myfi l e. txt Удаляе т из файла все буквы f 124 Обработка текстовой информации Гла ва 5.

Когда вам необходимо определить ряды символов дли дальнейшей работы, команда t r может помочь выполнить некоторые трюки. Ниже представлен пример изменения регистра букв с нижнего на верхний:

$ echo chr1 s 1 tr a · z A · Z Преобразует chr i s в CHRIS CHR I S Тот ж е результат может быть достигнут при выполнении следующей команды:

$ echo chr1 s 1 tr ' [ : l ower : ] ' ' [ : upper : ] ' Преобразует chr i s в CHRIS О пределение ра зп ичий между дву мя файлами Если у вас есть две версии одного файла, иногда может быть полезно определить, имеют ли они p83JIИЧИJI. Например, обновляя программный пакет, вы можете со­ хранить старый конфигурационный файл под новым именем (к примеру, confi g. о 1 d или confi g. ba k ) и таким образом оставить старую конфигурацию. В этих случаях для определения различающихся строк в старой и новой конфигурации вы можете использовать команду d i ff:

$ di ff confi g confi g. ol d В ы можете перевести выход d i ff в так называемый унифицированн:ый формат, который легче воспринимается человеком. Он добавляет три контекстные стро­ ки до и после каждой группы измененных строк, по которым выводит отчет, а затем для отображения различий между файлами добавляет символы + и -.

В следующих нескольких командах создается файл ( fl. txt ), содержащий после­ довательность цифр (1-7 ), и файл ( f2. txt) с одной из этих цифр, измененных с по­ мощью команды sed, после чего два этих фала сравниваются с помощью коман­ ды d i ff:

Передает последова тель ность цифр в файл fl. txt $ seq 1 7 > fl. txt $ cat f1. txt Отображает содержимое файла fl. txt б $ sed s/4/FOUR/ < fl. txt > f2. txt Изменяет 4 на FOUR и передает резуль та т в файл f2. txt $ d1 ff fl. txt f2. txt Отображае т измененную четвер тую строку в файле 4с < > FOUR $ di ff · u fl. txt f2. txt Отображае т унифицированны выход команды di ff - - - f1. txt 2007 - 09 - 07 18 : 26 : 06. 000000000 - +++ f2. txt 2007 - 09 - 07 18 : 26 : 39. 000000000 - @@ - 1. 7 +1. 7 @@ Отображение, упорядочивание и редактирование текста - +FOUR б В данном примере команда di ff -u отобразила только дополнительную инфор­ мацию: дату и время изменения стандартной команды di ff. Команда sdi ff может быть использована для выполнения еще одной задачи: она может объединить вы· ход двух файлов, как показано в следующем примере:

$ sdi ff fl. txt f2. txt 1 2 3 FOUR 5 б б Другим вариантом команды di ff является команда v i md i ff, которая одновре­ менно открывает два файла в редакторе vim и выделяет различия между ними цветом о каждом процессе. Аналоmчным образом команда gvi md i ff открывает два файла в редакторе gvim.

МЕЧАНИЕ -------­ Для запуска программы gvim или выполнения команды gvimdiff вам необходимо установить про­ граммный пакет vim-gnome.

Выход команды di ff u может отображаться и через команду patch. Она исполь­ зует старый и измененный файлы в качестве источников входящих данных, а затем возвращает измененный файл. В следующем примере команда di ff используется для сравнения двух файлов, а затем к первому файлу применяются найденные изменения:

$ di ff · U fl. txt f2. txt > patchfi l e. txt $ patch fl. txt < patchfi l e. txt patch i ng fi l e f1. txt $ cat fl. txt FOUR б Именно таким образом многие разработчики OSS ( Operational Support System) (включая разработчиков ядра) распространяют свои заплатки. Команды patch и d i ff могут использоваться для целого дерева каталогов, однако эта тема уже выходит за рамки данной книги.

126 Глава 5. Об ра ботка текстовой информации Использование команд awk и cut дпя столбцов про цессов Другим мощным инструментом редактирования текста является команда awk.

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

$ ps auwx Отображает столбцы 1 и 1 1 команды ps awk ' {pri nt $ 1, $11} ' $ ps auwx awk ' / francoi s/ {pri nt $11} 'Отображает процессы поль зова теля franco i s $ ps auwx grep francoi s 1 awk ' {pri nt $11} ' То же В первом примере отображается содержимое первого (имя пользователя) и одиннадцатого столбцов (имя команды) из выходных данных текущих процессов команды ps (ps a uwx). Следующие две команды выводят те же даннt>Jе, но в первом случае поиск всех процессов пользователя francois осуществляется с помощью ко­ манды awk, а во втором - с помощью команды grep. В каждом их этих случаев при отображении процессов пользователя francois выводится также и 1 1 -й столбец (имя команды).

По умолчанию команда awk в интервалах между столбцами устанавливает раз­ делительный знак. С помощью параметра F вы можете установить любой другой разделитель:

В ка чес тве знака -раздели теля $ awk · F : ' {pri nt $1, $5} ' /etc/passwd для о тображения столбцов устанавливается двоеточие То же самое можно проделать и с помощью команды cut. Как и в предыдущем примере, в качестве знака-разделителя столбцов для обработки информации из файла / etc / pa s swd будет установлен знак двоеточия:

$ cut · d : · f1, 5 /etc/passwd В ка чес тве з нака -раздели теля для отображения с толбцов ус танавливается двое точие Команда cut также может быть использована при работе с несколькими полями значений. Следующая команда отображает столбцы 1 -5 файла /etc/passwd fi 1 е:

$ cut · d : · f1 · 5 /etc/passwd Отображае т с толбцы 1 - Чтобы отобразить все столбцы от заданного номера и выше, вы можете ис­ пользовать следующий прием. Следующая команда отображает все столбцы файла /etc/passwd, начиная от пятого:

$ cut · d : · f5 · /etc/passwd Показывает все с толбцы. начиная от пя того Команду awk предпочтительнее использовать, если столбцы разделяются раз­ личным количеством интервалов (в выходе команды ps ), а команду cut - при ра­ боте с файлами, разделенными запятыми (. ) или двоеточиями ( : ), как в файле /etc/password.

Реэюме Ко нвертирование текстовых файлов в различные форматы Используемые в UNIX символы конца строки ( \ n ) отличаются от тех, которые используются в MS-DOSjWindows ( \ r\n). Эти специальные символы текстового файла можно просмотреть, воспользовавшись командой od:

$ od ·с ·t xl щyfi l e. txt Чтобы эти символы правильно отображались после копирования из одной среды в другую, необходимо конверmровать файлы:

$ uni x2dos < щyuni xfi l e. txt > mydosfi l e. txt $ cat щydos fi l e. txt 1 dos2uni x > щyunixfi l e. txt Продемонстрированная в первом примере команда ( u n i x2do s ) конвертирует файл открытого текста Linux или UNIX (myuni xfi 1 е. txt) в текстовый формат DOS или Windows (mydos fi l e. txt). Команда из второго примера (dos2uni x) осуществляет противоположную операцию - конвертирует файл DOSjWindows в файл Linux/ UNIX. Для использования данных команд у вас должен быть установлен программ­ ный пакет tofrodos.

Рез юме В операционных системах Linux и UNIX для настройки системы, документации и возвращаемых данных, а также для многих видов хранимой информации тради­ ционно используются файлы открытого текста. Поэтому было создано множество команд, позволяющих осуществлять поиск, редактирование и выполнение других действий над файлами открытого текста. Даже при современных интерфейсах G Ul умение работать с файлами открытого текста является необходимым для тех, кто хочет стать продвинутым пользователем Linux.

В данной главе были описаны некоторые наиболее популярные команды, пред­ назначенные для работы с файлами открытого текста Linux. Среди этих команд присутствуют команды текстовых редакторов (таких как vi, nano и JОЕ), а также команды, способные редактировать разделяющи;

еся данные (например, sed и awk).

Кроме того, здесь были приведены примеры использования команд упорядочива­ ния текста (sort), отображения статистических данных (wc) и иреобразования символов в тексте (tr).

Испол ьзо в а н ие " м ул ьт и меди и н ы х да н н ы х Если вам необходимо лишь прослушать песню или конвертировать изображение либо аудиофайл в другой формат, нет необходимости использовать приложения G U I. Для работы с мультимедиафайлами (аудиофайлы или изображения) су­ ществуют быстрые и удобные консольные команды. Если же вам нужно работать с целыми пакетами мультимедиафайлов, то для применения одного действия к нескольким файлам вы сможете использовать команду, которую используете для преобразования одного файла.

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

Э вук Для операционных систем Linux предусмотрены команды, позволяющие работать с десятками форматов аудиофайлов. Для проелушивания аудиофайлов можно ис­ пользовать такие команды, как ogg1 23, mpg321 и р 1 ау. Кроме того, существуют ко­ манды для оцифровки музыки с музыкальных компакт-дисков и ее сжатия для последующего эффективного хранения. Существуют даже команды, позволяющие осуществлять стриминг аудио, чтобы каждый пользователь сети мог проелушивать ваш список воспроизведения.

П рои грыванне музыки В зависимости от формата воспроизводимой вами музыки вы можете выбирать тот или иной консольный проигрыватель Linux. Команда р 1 ау (основанная на пакете sox, описываемом ниже) может проигрывать аудиофайлы многочисленных сво­ бодно доступных форматов. Для воспроизведения музыки популярных открытых форматов, таких как Ogg VorЬis, Free Lossless Audio Codec (FLAC) и Speex, вы можете использовать проигрыватель ogg 123. Проигрыватель же mpg321, доступный З вук через сторонние интернет-репозитории, является популярным проиrрывателем музыкальных файлов в формате М РЗ.

Для использования команды р 1 ау необходим проrраммный пакет sox, который можно установить с помощью следующей команды:

$ sudo apt - get 1 nsta1 1 sox Чтобы просмотреть список доступных для воспроизведения аудиоформатов и эффектов, выполните команду sox - h:

$ sox · h Supported fi 1 e formats : Bsvx a i f a i fc a i ff a i ffc а 1 a 1 sa a u a uto a v r cdda cdr cvs cvsd dat dvms fssd gsm hcom i ma i rcam 1 а 1 u maud n i st nu1 nu1 1 ogg ossdsp prc raw sЗ sb s f s 1 smp snd sndt sou sph sw txw uЗ u4 ub u1 uw vms voc vorbi s vox wav wve ха Supported effects : а 1 1 pa s s band ba ndpa s s bandrej ect ba s s chorus compand dcshi ft deemph d i ther ea rwa x echo echos equa 1 i zer fade fi 1 ter f1 a n g e r h i ghpa s s 1 owpa s s mcompand mi xer noi seprof noi sered p a d pa n p h a s e r pi tch po 1 yphase repeat resamp1 e reverb reverse s i 1 ence speed stat st retch swap synth t reЫ e t remo1 o t r i m v i bro vo Для воспроизведения звуов команда р Т ау использует кодировку sox. Ниже приведено несколько примеров использования команды р 1 ау для воспроизведения музыкальных файлов:

Проигрывает файл WA V (из влеченный $ р1 ау i nconcei vaЫ e. wav из конпакт -диска в тон числе ) Проигрывает файлы WA V из ка талога (до 32 штук ) $ р1 ау *. wav $ р1 ау hi. au vo1. б Проигрывает файл AU. уменьшает громкос ть (снижае т уровень искажений ) $ р1 ау · r 14000 short. ai ff Проигрывает файл A IFF с часто той дискретизации 14 000 Гц Для проиrрывания файлов Ogg Vorbls установите проrраммный пакет vorbls­ tools. Ниже приведены примеры воспроизведения ОGG-файлов (www.vorbls.com) с помощью ogg l23:

$ oggl23 mysong. ogg Проигрывает ОGG-файл $ ogg123 /usr/share/examp1 e - content/ubuntu\ Sax. ogg Проигрывает файл -образец $ ogg123 http : //vorbi s. com/musi c/Lumme · Bad1 oop. ogg Проигрывает файл. размещенный по указанно интернет -адресу $ oggl23 · Z *. ogg Проигрывает файлы в случайнон порядке $ ogg123 /var/musi c/ Проигрывает файлы из ка талога l varlmus i c и подка талога d i rs $ ogg123 ·@ myp1 ay1 i st Проигрывае т песни из списка воспроиз ведения Список воспроизведения является обычным списком каталогов или отдельных ОGG-файлов, которые необходимо воспроизвести. Если каталог занесен в список, то воспроизводятся все ОGG-файлы, внесенные в него и все его подкаталоги.

При воспроизведении нескольких файлов, чтобы пропустить песню, нажмите со­ четание клавиш Ctri+C. Для выхода дважды нажмите сочетание Ctri+C.

130 Глава б. Испол ьэование · мультимедийных данных Для использования проигрывателя mpg321 необходимо установить nрограммный пакет mpg32 1. Ниже приведено несколько примеров воспроизведения аудио в фор­ мате М РЗ с помощью проигрывателя mpg321:

$ mpg321 yoursong. mpЗ Проигрывае т МРЗ -файл $ mpg321 @ mpЗl ;

st Проигрывае т аудиофайлы из списка воспроиз ведения · $ cat mpзl ;

st 1 mpg321 @ Передает список воспроиз ведения в проигрыва тель · mpg $ mpg321 Z *-. mрЗ Проигрывае т файлы в случайнон порядке · $ mpg321 Z *. mрЗ То же. ч то и с -z. но аудиофайлы воспроизводятся · бесконечно Список воспроизведения mpg32 1 является обычным списком файлов. Напра­ вив выход команды 1 s в файл, вы можете создать список воспроизведения. Если вы не планируете использовать список из мест, к которым требуется указывать относительный путь, то указывайте полный путь к файлам.

Упра вп ение уровнем зву ка Вид используемых для активизации аудиоустройств и управления уровнем звука консольных аудиоприложений зависит от типа используемой вами звуковой сис­ темы. Звуковая система Advanced Linux Sound Architecture (ALSA) ( сулучшенная звуковая архитектура Linuю) является системой, используемой сеrодня в боль­ шинстве операционных систем Linux. Звуковая система Open Source Sound System (OSS) ( •звуковая система Open Source• ) функционирует уже давно и использу­ ется сейчас только с более старым оборудованием. В общем, для управления уров­ нем звука при использовании ALSA предназначена команда a l sami xe r, а при ис­ пользовании OSS a umi х. ALSA является звуковой системой по умолчанию для большинства операцион­ ных систем Linux. Если добавить загружаемые модули, активизирующие интер­ фейсы устройства OSS, то аудиоприложения, для работы с которыми необходим интерфейс устройства OSS, будут также работать и с ALSA. Чтобы проверить, загружены JIИ модули OSS, такие как snd-pcm-oss (имитирует /dev/dsp и /dev/ audi о), snd-mixer-oss (имитирует 1 dev/mi xer) и snd-seq-oss (имитирует 1 dev 1 sequencer ), выполните следующую команду:

# l smod 1 grep snd Если модули загружены, то для управления уровнем звука приложений OSS может использоваться проиrрыватель alsamixer, который можно запустить сле­ дующим образом:

$ al sam;

xer Отображает экран a l samixer и о тражае т процесс воспроизведения $ al sam;

xer V pl ayЬack Отображает тол ь ко каналы воспроиз ведения · (установленные по умолчанию ) $ al sam;

xer V al l Отображает процесс воспроизведения и вид ввода · $ al sam;

xer с 1 Исполь зуе т a l samixer на в торой (1 ) з вуковой кар те · Полоски, отражающие уровень звука, доступны для каждого звукового канала.

Для выделения отдельных каналов ( Master (главный), РСМ, Headphone (науш Звук пики) и др. ) используйте клавиши управления курсором и +--. Для увеличения и уменьшения уровня звука каждого из каналов используйте клавиши t и.J... Вы­ делив канал, нажмите клавишу М для вЬIКЛюченив или включении воспроизведе­ НИJI этого канала. Чтобы назначить канал в качестве входящего (для записи с ау­ диовхода), нажмите Пробел при выделенном входном канале ( Mic (микрофон), Line (линейный вход) и т. д.). Для выхода из alsamixer нажмите сочетание клавиш Alt+Q или клавишу Esc. Для переключения между настройками воспроизведения, ввода и общим видом используйте клавишу ТаЬ.

Приложеине микширования звука aumix (для использования которого необхо­ димо установить программный пакет aumix) может работать в режиме, ориентиро­ ванном на работу с экраном или в командном режиме. В текстQВом режиме ДJlJI измененив или отображенив настроек вы можете использовать параметры соот­ ветствующей команды:

$ aumi x - Отображает уровень левого и правого каналов $ aumi x - 1 q - m q Отображае т текvщие нас тройки толь ко для линейного и микрофонного входов Ус танавливает уровен ь з вука на 70 Ж. а уровень О $ aumix - v 80 - m микрофонного в хода - на О $ aumi x - m 80 - m R - m q Ус танавливае т уровень микрофонного вх ода на ВО Ж.

активиз ирует его для записи и о тображает его сигнал $ aumi x Если не исполь зов а ть паране тры, aumix запускае тся в экраннон режиме В экранном режиме приложение aumix отображает все доступные аудиоканалы.

В этом режиме дли измененив отображаемых настроек звука используйте кла­ виши на клавиатуре. Для выбора каналов используйте клавиши Page Up, Page Down и клавиши управления курсором t и.J... Для изменения громкости используйте клавиши +-- и. Для выключения звука текущего канала нажмите клавишу М. Что­ бы выбрать текущий канал в качестве источника записи, нажмите Пробел. Исполь­ зуя мышь, вы можете управлять уровнем звука, балансом и текущим каналом записи.

О ц и ф ровка м узы к и с компа кт-дисков Чтобы вы могли проигрывать свою музыкальную коллекцию с жесткого диска, в Linux существуют различные приложения, позволяющие конвертировать музыку, записанную на компакт-диски, в W АV -файлы, а затем копировать ее на жесткий диск. После этого, используя такие приложения, как oggenc ( Ogg Vorbls ), flac (FLAC) или lame ( М РЗ), оцифрованные файлы можно сжимать для уменьшения занимаемого на диске места.

---­ ПРИМЕЧАНИЕ - Для оцифровки и сжатия аудиоданных, записанных на компакт-диски, существуют прекрасные графические приложения, такие как grip и souпd-juicer. Поскольку эти приложения поддерживают CDDB, они, чтобы отображать выходные данные (имя исполнителя, название альбома, песни и т. д.}, также могут использовать информацию о музыке, записанной на компакт-диск. Однако в данном разделе описывается только использование этих команд для ручной оцифровки и сжатия музыкаль­ ных компакт-дисков.

132 Глава б. Использование мультимедийных данных С помощью команды cdparanoi а вы можете проверить, способен ли ваш СD-при­ вод оцифровывать Compact Disc Digital Audio ( CDDA), извлекать аудиодорожки и копировать их на ваш жесткий диск. Для этого вставьте музыкальный компакт­ диск в привод и выполните следующую команду:

$ cdparanoi a - vsQ Check i ng /dev/cd rom for cd rom...

Check i ng for SCS I emul ati on...

Check i ng for ММС styl e command set...

Veri fy i ng CDDA command set...

Та Ы е of contents ( a udi o tracks onl y ) :

track 1 ength beg i n сору pre ch о [ 00 : 0 0. 0 0 ] 18295 [ 04 : 03. 7 0 ] n o n.o 1.

16872 [ 03 : 44. 7 2 ] 2. no no 18295 [ 04 : 03. 7 0 ] 1 74587 [38 : 47. 62 ]. no no 11. 17908 [ 03 : 58. 58] 17342 [ 03 : 5 1. 17 ] 192495 [42 : 46. 45 ] no no 12.

( a udi o on l y ) TOTAL 209837 [46 : 37. 62] Сокращенный формат вывода данных позволяет увидеть, что команда cdpa ranoi а проверяет возможности 1 dev 1 cd rom, выполняя поиск эмуляторов SCSI и поддержки набора команд ММС, а также проверяет, может ли данный привод обрабатывать информацию CDDA. Только после этого выводится информация о каждой дорож­ ке. Ниже приведены примеры команд cdpa ranoi а, использующихся для оцифровки комиакт-дисков и записи их на жесткий диск:

-В $ cdparanoi a Конвер тируе т дорожки в WА V-файлы -В $ cdparanoi a "5-7" Конвер тируе т дорожки 5 - l в раздель ные файлы · $ cdparanoi a · · " 3 · 8 " abc. wav Конвер тирует дорожки 3-8 в один файл (abc. wa v ) $ cdparanoi a · " 1 : [40] · " Конвер тируе т файлы. начиная с 4 0 секvнды первой дорожки и до конца конпа к т -диска $ cdparanoi a - f · · " 3 " Конвер тируе т дорожку 3 и сохраняе т ее в форна те A IFF Конвер тируе т дорожкv 5 и сохраняет ее $ cdparanoi a - а "5" в форна те A IFF $ cdparanoi a - w " 1 " my. wav Конвер тируе т первую дорожку и называет ее my. wa v Конвертирование м узыки Следующим шагом после записи музыкального файла на жесткий диск обычно является его сжатие. Среди популярных конвертеров можно назвать oggenc, flac и lame, конвертирующие файлы в форматы Ogg Voгbls, FLAC и МРЗ соответст­ венно.

С помощью oggenc вы можете работать с исходным форматом или с аудиофай­ лами или потоками аудиоданных в форматах W AV, AIFF, FLAC, а также конвер­ тировать их затем в формат OGG. Хотя формат OGG допускает большие потери качества, сжатие W АV -файлов позволяет добиваться очень хорошего качества, Звук несмотря на то что размер файла уменьшается приблизительно в десять раз. Вот несколько примеров использования команды oggenc:

$ oggenc ab. wav Конвер тируе т WA V в OGG (ab. ogg ) $ oggenc ab. f1 ac -о new. ogg Конвер тируе т FLAC вOgg (new. ogg ) Повышае т ка чество сжа тия до $ oggenc ab. wav - q По умолчанию качество ( параметр q) сжатия командой oggenc установлено на уровень 3, однако вы можете устанВВJiивать любое его значение: от - J.:до 10 ( вклю­ чая дробные числа, например 5. 5).

$ oggenc NewSong. wav - о NewSong. ogg \ - а Bernstei n · G C1 assi ca1 \ - d 06/15/1972 - t " S i mp1 e Song" \ - 1 " Bernstei ns Hass " \ - с i nfo-" From Kennedy Center " Показаипая выше команда конвертирует песню MySong. wa v в MySong. ogg. Имя исполнителя Bernstei n, а стиль музыки С1 a s s i са 1, дата написания композиции опре­ делена как 15 июня 1972 года, композиция называется S i mp 1 e Song, а альбом ­ Bernstei ns Ma s s, комментарий - F rom Kennedy Center. Если вы вводите всю команду в одну строку, то обратные слэши не нужны, ощiако если вы все же добавите их, убедитесь, что после них нет пробелов.

В предыдущем примере в заголовок конечного ОGG-файла добаВJIJiется не­ которая информация, просмотреть которую можно, воспользовавшись командой ogg i nfo:

$ oggi nfo NewSong. ogg Proces s i ng fi 1 e " NewSong. ogg "...

Channel s : Rate : Nomi n a 1 bi trate : 112. 000000 kЬ/s User comments sect i on fol l ows...

i nfoFrom Kennedy Center ti t l e=Si mpl e Song a rt i st=Bernstei n gen re=Cl a s s i ca l date=Oб/ 151 a l bum=Bernstei ns Ma s s VorЬi s st ream 1 :

Tot a l data l ength : 3039484 bytes Pl ayback l ength : 3m : 25. 240s Average bi t rate : 1 1 8. 475307 kЬ/s Log i ca l st ream 1 ended Здесь вы можете видеть, что в процессе сжатия были добавлены комментарии.

Параметр -с использовался для установки произвольно выбранного поля (в данном случае i n fo) с некоторым значением заголовка. Помимо комментариев, у этого файла присутствуют два канала, и он был записан при частоте дискретизации 44 100 Гц. Из полученной информации можно узнать объем записанных данных, продолжительность записи и среднюю частоту дискретизации.

134 Глава б. Использование мультимедийных данных Команда fl ас похожа на oggenc, отличие состоит лишь в том, что файлы WAV, AIFF, RAW, FLAC или OGG конвертируются в формат FLAC. Поскольку fl ac является бесплатным аудиокодеком, не допускающим потерь качества, он являет­ ся популярным методом сжатия у тех, кто хочет сохранить свободное место на диске, но в то же время ценит высокое качество звука. Если использовать значения по умолчанию, то конвертирование файлов из формата W AV в формат FLAC уменьшит и размер вдвое, что существенно отличается от пропорции 1 : 1 0 при использовании oggenc. Для использования команды fl ас необходимо установить программный пакет flac:

$ fl ac now. wav Конвер тирует WA V в FLAC (now. flac ) $ sox now. wav now. ai ff Конвер тирует WA V в A IFF (now. a i ff) fl ac now. ai ff -о now2. fl ac $ Конвер тируе т A IFF в FLAC (now. flac ) Увеличивает уровень сжа тия до - fl ac - 8 top. wav - о top. fl ac $ Уровень сжатия по умолчанию равен - 5. Кроме него можно также использовать уровни от О до - 8, где наибольшее число дает наивысший уровень сжатия, а самое низкое - наилучшее качество. Чтобы конвертировать файлы в формат М РЗ, используя команду 1 ame, вам нужно сначала установить программный пакет lame.

Вот несколько примеров сжатия файлов в форматах W АV и AIFF с помощью команды 1 ame:

$ l ame i n. wav Конвер тирует файл форма та WA V в МРЗ ( i n. wa v. mp3 ) Конвер тируе т файл в форма т МРЗ.

$ 1 ame i n. wav - - preset standard исполь зуя стандар тные нас тройки -о $ l ame tune. a i ff tune. mpЗ Конвер тируе т файл форма та A lH в МРЗ ( tune. mpЗ ) $ l ame - h - Ь 64 - m m i n. wav out. mpЗ Ус танавливает высокое качес тво. 64 -b i t.

режим м оно $ l ame - q -о О i n. wav abcHQ. mpЗ Конвер тируе т файл со значением ка чес тва, равным О Используя команду 1 ame, вы можете устанавливать значения качества от О до (5 является значением по умолчанию). При установке качества, равного О, исполь­ зуются наилучшие алгоритмы сжатия;

при использовании же значения 9 большин­ ство алгоритмов сжатия отключается (но процесс сжатия проходит быстрее). Как и при использовании oggenc, команда 1 ame позволяет добавлять в МРЗ-файл теги, которые могут использоваться позже пр воспроизведении файла:

$ l ame NewSong. wav NewSong. mpЗ \ - - ta Bernstei n - - tg Cl assi cal \ - - ty 1972 - - tt " S i mpl e Song " \ - - tl " Bernstei ns Mass " \ - - tc " From Kennedy Center" Как и в рассмотренном ранее примере конвертирования файла из формата WАV в формат OGG, приведеиная команда конвертирует файл MySong. wa v в MySong. mpЗ.

Имя исполнителя по-прежнему Bernstei n, стиль музыки C1 assi ca 1, год 1972, песня на­ зывается S i mp1 e Song, а альбом - Bernstei ns Ma ss, комментарий - From Kennedy Center.

Звук Если вы вводите всю команду в одну строку, то обратные слэши не нужны, однако если вы все же добавите обратные слэши, убедитесь, что после них нет пробелов.

Информация из тегов отражается на экране в случае использования графиче­ ских оболочек МРЗ-проигрывателей (например, Rhythmbox и Totem), когда они проигрывают музыку в формате М РЗ. Кроме того, информацию, содержащуюся в тегах, можно просматривать и при использовании консольных проигрывателей, например mpg32 1 :

$ mpg321 NewSong. mpЗ Hi gh Performa nce MPEG 1. 0 / 2. 0 / 2. 5 Aud i o P l ayer fo r Layer 1. 2. a nd 3.

Ti t l e : S i mpl e Song Arti st : Bernstei n Bernstei ns Ma s s Yea r : Al bum :

Comment : F rom Kennedy Center Genre : Cl a s s i ca l Pl ayi ng MPEG st ream from NewSong. mp MPEG 1. 0 l ayer I I I. 128 kbi t / s, 441 0 0 H z joi nt - stereo Стриминг музыки Если вы храните свою музыку на одном компьютере, но работаете с другим, то настройка музыкального сервера дли стриминга может стать наиболее быстрым способом предоставить вашу музыку для проелушивания с одного или более ком­ пьютеров, находящихся в сети. Стриминг-сервер icecast и клиент аудиоисточника ices можно установить на Ubuntu, выполнив следующую команду:

$ sudo apt - get i nstal l i cecast2 i ces Ниже представлен быстрый алгоритм настройки сервера icecast и клиента ices для стриминга музыки, который необходимо выполнить на том компьютере, на котором хранятся аудиозаписи.

1. Чтобы изменить все отображамые пароли, измените файл /etc / i cec a s t 2 / i cecast. xml. Для получения текущих паролей найдите поле hackme. Скорее всего, вам понадобится установить дополнительные пароли для пользователей и ад­ министратора, особенно если вы планируете открыть для других возможность предоставлять свою музыку серверу. Запомните установленные пароли, чтобы иметь возможность впоследствии их использовать. Кроме того, с помощью ре­ дактирования данного файла вы можете изменить и другие настройки, напри­ мер имя хост-системы:

$ sudo vi /etc/i cecast2/i cecast. xml 2. Если у вас есть сетевой экран, проверьте, доступен ли его порт ТСР 8000.

3. Запустите сервер icecast2 от имени суперпользователя, выполнив указанную ниже команду (на самом же деле сервер будет запущен от имени пользователя icecast2), и проверьте ее выполнение с помощью команды netstat:

$ sudo /etc/ i ni t. d/ i cecast2 start $ sudo netstat - topavel 1 grep L I STEN tcp О О 0. 0. 0. 0 : 8000 0.0.0.0:* 111 35790 21494/ i cecast off ( 0. 00 / 0 / 0 ) 136 Гла ва б. Использо ва ние мультимедийных данных 4. Создайте каталоги, необходимые программе ices2, предоставляющей список воспроизведения и музыку серверу icecast2:

$ sudo mkdi r /var/1 og/ i ees $ sudo mkdi r /ete/ i ces $ sudo mkdi r /ete/i ees2/musi e 5. Создайте список воспроизведения, воспользовавшись любым текстовым редак­ тором или направив свой список музыки в файл. Например, если вся ваша музыка в формате OGG хранится в подкаталогах /va r /mus i с, выполните следую­ щую команду:

$ fi nd /var/mus i e - name *. ogg > p1 ay1 i st. txt 6. Убедившись, что файл р 1 ау 1 i st. txt содержит полные пути к каждому музыкаль­ ному файлу, а сами файлы доступны ерверу icecast2, скопируйте файл со спи­ ском воспроизведения в каталог 1 etc/ i ces2:

$ sudo ер p1 ay1 i st. txt /ete/ i ees Для редактирования файла со списком воспроизведения (удаляя или добавляя из него файлы или каталоги) можно использовать любой текстовый редактор.

7. От имени суперпользователя отредактируйте файл 1 etc/ i ces2/ i ces - р 1 ау 1 i st. xm1, чтобы проигрывать музыку из списка воспроизведения и направлять ее на активный сервер icecast2. Начните с редактирования конфигурационного файла:

$ sudo ер /usr/share/doe/i ees2/examp1 es/i ees - p1 ay1 i st. xm1 /ete/i ees $ sudo vi /ete/ i ees2/i ees - p1 ay1 i st. xm 8. В отдельных случаях вам может помадобиться изменить модули метаданных, входящих данных или модули instance (в приведеином ниже примере необхо­ димо заменить /etc/ i ces 2/p1 ау1 i st. txt на путь к вашему файлу pl ayl i st. txt):

My Musi e Server Di fferent mus i e sty1 es Mix of my persona1 musi e p1 ay1 i st basi e /ete/i ees2/p1 ay1 i st. txt < ! - - ra ndom pl ay - - > l 1 oea1 host BOOO M i eePw /mymusi e. ogg < / i nsta nce> Звук Из показанных выше значений (выделенных полужирным шрифтом) самым критичным является адрес вашего списка воспроизведения и информация об экземпляре сервера icecast2. Пароль к серверу должен соответствовать паролю, добавленному в файл /etc / i ceca st2/ i ceca st. xm1 fi 1 е.

9. Выполнив следующую команду, запустите передачу аудиоданных клиенту ices:

$ sudo 1 ces2 /etc/ 1 ces2/1 ces - p1 ay1 1 st. xm1 & 10. Чтобы про верить, можете ли вы проигрывать музыку с локального компьютера, выполните следующую команду:

$ oggl23 http : //l ocal host : SOOO/mymusi c. ogg 1 1. Если тест будет завершен успешно, попробуйте воспроизвести поток icecast с другого компьютера вашей сети, изменив 1 оса 1 host на I Р-адрес или имя хает­ машины.

12. Если же при проведении теста возникнут проблемы, проверьте файлы журнала /var/ 1 og / i cecast2 и / v a r/ 1 og / i ces, а также парали и адреса конфигурационных файлов.

13. После завершения настройки удалите сервис icecast2:

$ sudo /etc/ 1 ni t. d/ 1 cecast2 stop Во время активности серверов icecast и ices любой компьютер, подключенный к серверу, должен получать транслируемый поток аудиоданных. Для прослушива ния музыки может использоваться любой музыкальный проигрыватель, способ­ ный восnроизводить музыку с определенного НТТР-адреса (ogg1 23, Rhythmbox, XMMS и т. д.). Музыкальные проигрыватели Windows, поддерживающие воспро­ изведение транслируемых форматов, также должны работать.

ПРИМЕЧАНИЕ -------­ Чтобы пропусnпь проигрываемую песню, выполните на сервере следующую команду: killall -HUP ices.

Конвертирование аудиофайпов Утилита sox является гибким приложением, позволяющим работать с аудиофай­ лами свободно распространяемых форматов. Ниже представлено несколько при­ меров, демонстрирующих выполнение определенных задач с помощью sox.

Данная команда объединяет два WAV -файла в один:

$ sox head. wav tai l. wav output. wav Следующая команда микширует два WAV-файла:

$ soxmi x soundl. wav sound2. wav output. wav Для отображения информации о файле с помощью sox используйте эффект stat:

-е $ sox soundl. wav stat Samp1 es read :

138 Глава б. Использование мультимедийных данных Length ( seconds ) : 9. Sca 1 ed Ьу : 2147483647. Maxi mum amp1 i tude : 0. - 0. 2247 Mi n i mum amp1 i tude :

- 0. 0 1 Mi d 1 i ne amp1 i tude :

Mea n norm : 0. Mea n amp1 i tude : 0. RMS amp1 i tude : 0. Maxi mum de1 ta : 0. Mi n i mum de1 ta : 0. Mea n de 1 ta : 0. RMS de 1 ta : 0. 0 Rough frequency : Vo1 ume adjustment : 4. Чтобы удалить звук из аудиофайла, используйте команду tri m:

$ sox soundl. wav output. wav tri m 4 Удаляе т четыре пер вые секунды аудиозаписи $ sox soundl. wav output. wav tri m 2 б Удаляет аудиозапись до в торой и после шес той сецrнд В первом примере удаляются первые четыре секунды из файла sound 1. wav, а ре­ зультат сохраняется в файл output. wav. Во втором примере остается часть файла sound1. wa v со второй по шестую секунды, остальное удаляется, а полученный файл сохраняется под именем output. wa v.

П реобразование изобра жений Если у вас есть каталоги, хранящие коллекции цифровых изображений, то возмож­ ность управлять ими из командной строки может существенно сэкономить время.

Программный пакет ImageMagick поставляется с некоторыми прилож.е ниями, по­ зволяющими преобразовывать цифровые изображения в формы, удобные для даль­ нейшей работы (чтобы установить данный пакет на Ubuntu, выполните команду apt - get i nsta 1 1 i magemagi ck ). В этом разделе описаны некоторые команды, предна­ значенные для работы с цифровыми изображениями, а также приводятся примеры простых командных строк для пакетной обработки.

Пол учение информации об изобра жениях Чтобы получить информацию об изображении, используйте команду i denti fy:

$ i denti fy p2090 142. jpg p2090 142. j pg J PEG 2048х1536+0+0 Di rectC1 a s s 8 - bi t 402. 037kb $ i denti fy - verbose p2090142. jpg 1 l ess Sta nda rd devi ati on : 61. 1665 ( 0. 239869 ) Co1 ors : Renderi ng i ntent : Undefi ned Преобраэова ние и зображений Resol uti on : 72х Uni ts : Pi xel s Pe r l nch F i l es i ze : 402. 037kb I nterl ace : None Backg round col o r : wh i te Border col or : rgb ( 223. 223. 223 ) Matte col or : g rey Transpa rent col or : Ы асk Page geomet ry : 2048х1536+0+ Compres s i on : J PEG Qua l i ty : Первая команда в данном примере отображает основную информацию об изображении (имя файла, его формат, размер, класс и глубину канала). Вторая команда отображает всю информацию, которую можно извлечь из изображения.

Помимо приведеиной в примере информации, команда также позволяет просмот­ реть время создания файла, тип использованной камеры, значение диафрагмы и iSO.

Конвертирование изобра жений Команда convert является наиболее качественным инструментом конвертирования изображений. Ниже приведены некоторые способы конверmрованив изображе­ ний из одного формата в друrой с помощью команды convert:

$ convert tree. jpg tree. png Конвер тирует файл JPEG в PNG $ convert i con. gi f i con. Ьmp Конвер тирует файл GIF в ВМР $ convert photo. ti ff photo. pcx Конвер тируе т файл TIFF в РСХ Среди форматов изображений, поддерживаемых командой convert, можно на­ зватьJРG, ВМР, РСХ, GIF, PNG, ТIFF, ХРМ и XWD. Ниже приведены некоторые примеры конвертирования изображений с изменением их размера:

$ convert - resi ze 1024х768 hat. jpg hat - sm. jpg $ convert - sampl e 50tx50t dog. jpg dog - hal f. jpg В первом примере создается изображение (файл hat - sm. j pg ) с разрешением 1 024 х 768 пикселов. Во втором примере изображение dog. j pg уменьшается напо­ ловину (50% х 50%) и сохраняется под именем dog - h a l f. j pg.

Кроме того, вы можете поворачивать изображенИJI на угол от О до 360 ·:

$ convert - rotate 270 sky. jpg sky - f i nal. jpg Раз ворачивает изображение на 270 о $ convert - rotate 90 house. jpg house · fi nal. jpg Разворачивает изображение на 90 о Используя параметр - d raw, вы можете добаВJIJIТЬ к изображению текст:

$ convert - fi l l Ы асk - poi ntsi ze 60 - font he1 veti ca \ - draw ' text 10, 80 "Copyri ght NegusNet I nc. ' \ " plO. jpg plO - cp. jpg 140 Глава б. Использование мультимедийных данных В данном примере к изображению была добавлена информация об авторских правах, причем для создания надписи на изображении использовался шрифт Helvetica с размером кегля 60. Текст помещается на 10 пикселов правее и на 80 пик­ селов ниже верхнего левого угла. Полученное изображение было сохранено под именем p l O - cp. j pg, чтобы обозначить, что в новом изображении добавлена инфор­ мация об авторских правах.

Далее показано несколько интересных способов создания эскизов с помощью команды convert:

$ convert - thumbnai l 120х120 a. jpg a - a. png $ convert - thumbnai l 120х120 - Ьorder 8 a. jpg a - b. png $ convert - thumbna i l 120х120 - Ьorder 8 - rotate 8 a. jpg a - c. png Во всех трех примерах создаются эскизы с разрешением 1 20 х 120 пикселов.

Во втором случае был добавлен параметр - border, позволяющий создавать рамку вокруг эскиза, делая его похожим на снимок Polaroid. В последнем примере изо­ бражение также поворачивается. На рис. 6. 1 продемонстрирован результат выпол­ нения. всех трех команд.

a - a.pnQ а - Ь РП\ 1tо Рис. 6.1. Использование команды coпvert для создания эскиза, добавления рамки и лереворота изображения Кроме того, существуют способы применять к изображениям различные эф­ фекты:

$ convert - sepi a - tone 75% house. jpg ol dhouse. png $ convert - charcoal 5 house. jpg cha r - house. png $ convert - col ori ze 175 house. jpg col or - house. png Параметр - sepi а - tone позволяет создать эффект старой фотографии. Использо­ вание параметра -cha rcoa l создает впечатление, что изображение было нарисовано от руки углем. При использовании же параметра - со l ori ze цвет каждого пиксела изображения изменяется в соответствии с заданным числом (в приведеином слу­ чае 175). На рис. 6.2 в верхнем левом углу показано оригинальное изображение дома, в верхнем правом - то же изображение, но с применением эффекта sepi а - tone, в нижнем левом - с применением эффекта cha rcoa 1, а изображение с применением настроек цвета показано в нижнем правом углу.

Если вы захотите увидеть еще один пример обработки изображений, попробуй­ те применить к изображению эффект спирали:

$ convert - swi rl 300 photo. pcx wei rd. pcx Преобраэование изображений Рис. 6.2. Оригинальное изображение, а также с использованием эффектов sepia-tone, charcoal и colorize Конвертирование пакетов изобра жений Большинство описанных в данной главе преобразований могут быть выполнены в Приложениях по работе с изображениями, такими как GIMP. Однако в полной.

мере использовать возможности команды convert можно только при работе через консоль. В этом случае вы можете применять одну (или все) вышеуказанные опе­ рации одновременно к целому каталогу файлов.

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

Ниже приведен пример команды, позволяющей изменить разрешение всех изо­ бражений каталога на 1024 х 768 пикселов, чтобы вместить их в цифровую рамку:

$ cd $НOHE/myi mages $ ntdi r smal l $ for pi c i n ' l s *. png ' do echo "converti ng $pi c" convert - resi ze 1024х768 $pi c smal l / sm - $pi c done 142 Глава б. Использование мультимедийных данных Перед выполнением кода программа переходит в каталог $HOМE/myi mages (в ко­ тором хранятся изображения с высоким разрешением). Затем для помещения в него уменьшенных изображений создается подкаталог sma 1 1. Сам код начинается с петли for, которая отображает каждый файл в текущем каталоге, имеющий раз­ решение PNG (вам может помадобиться указать расширение JPG или другое).

После этого разрешение каждого файла меняется на 1 024 х 768 пикселов и полу­ ченные файлы копируются в каталог sma 1 1, причем к каждому имени файла добав­ ляется приставка sm-.

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

Р ез ю м е Консоль может предоставить быстрые и эффективные способы работы с аудио­ файлами и цифровыми изображениями. В данной главе описаны различные консольные способы воспроизведения, оцифровки, сжатия, конвертирования и стриминга аудиофайлов. Что же касается цифровых изображений, то здесь пред­ ставлено множество примеров использования команды convert для изменения их размера, разворота, конвертирования, создания записи и выполнения других опе­ раций с ними.

7 Ад м и н ист ри р о в а н и е ф а й л ов ы х систем Файловые системы представляют собой структуры, посредством которых можно получать доступ к файлам, каталогам, устройствам и другим элементам операци­ онной системы Linux. Linux поддерживает много различных типов файловых сис­ тем (ехtЗ, VFAT, IS09660, NTFS и т. д.), а также множество типов носителей, на которых эти файловые системы могут существовать (жесткие диски, компакт-дис­ ки, USВ-носители, ZIР-дискеты и т. д.).

Создание и управление разделами дисков и файловыми системами на этих носителях является одной из важнейших задач при администрировании операци­ онной системы Linux. Именно поэтому если вы повредите свою файловую систему, то, скорее всего, потеряете критически важные данные, хранящиеся на вашем же­ стком диске или съемных носителях.

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

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

В разделах с загрузочной и корневой файловыми системами обычно используется файловая система типа ехtЗ.

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

144 Глава 7. Администрирование файловых си стем В большинстве примеров данной главы, чтобы продемонстрировать процесс создания и управления файловой системой, используется файловая система ехtЗ, однако иногда вам может попадобиться использовать и другие типы файловых систем. В табл. 7. 1 приведен список различных типов файловых систем и их опи­ сания на случай, если вам понадобится их использовать.

Таблица 7.1. Типы файловых систем, поддерживаемые Liпux Тиn Описание фaiinoвoii сисrемы ext3 Наиболее распространенная файловая система Linux, предоставляющая возможность журналирования с целью сохранения данных и возможность быстро перезагружать систему после некорректного завершения ее работы ext2 Файловая система, предшествующая ехtЗ, не поддерживающая функцию журналирования lso9660 Развилась из файловой системы High Sierra (была стандартом для компакт-дисков) и может содержать расширения Rock Ridge для обеспечения возможности использования длинных имен файлов и других функций (полномочия доступа к файлу, права собственности и ссылки) Jffs2 Журналируемая файловая система для флэш-носителей, созданная для эффективной работы с USВ-накопителями. Продолжательница системы JFFS jfs Файловая система, используемая на IBM в OS/2 Warp и настроенная на работу с большими файловыми системами и средами с высокой производительностью msdos Может использоваться для монтирования файловых си сте м на устаревшие носители MS-DOS, например старые дискеты ntfs Может быть полезна, когда есть необходимость передавать файлы в файловые системы Windows (с двойной загрузкой или на сменных носител ях) reiserfs Журналируемая файловая система, иногда используемая по умолчанию на SUSE, Slackware и других операционных системах Linux, но не поддерживаемая в Ubuntu squashfs запакованная файловая система, предназначенная только для чтения данных и используемая на многих Live CD Linux 'Используется на разделах подкачки для временного хранения данных, когда swap оперативная память временно недоступна ufs Популярная файловая система операционных систем Solaris и SunOS от корпорации Sun Microsystems vfat Расширенная файловая система FAT (VFAT}, которая полезна, если файловым системам нужно обмениваться файлами с более старыми системами Windows (с двойной загрузкой или на сменных носителях) xfs Журналируемая файловая система для среды с высокой производительностью, размер которой может расширяться до многих терабайт данных, а скорость передачи данных в которой исчисляется гигабайтами в секунду Помимо файловых систем, рассмотренных в таблице, существуют также сете­ вые файловые системы, называемые общими сетевыми файловыми системами.

Общая сетевая файловая система должна относиться к типу ехtЗ, ntfs или другому стандартному типу, любая часть которой может быть предоставлена для общего Соэдание файловых систем и управление ими доступа посредством сетевых протоколов, таких как Samba (тип файловой системы smbls или cifs), NFS (nfs) и NetWare (ncpfs).

Многие из доступных типов файловых систем либо неспособны создавать новые файловые системы, либо не поддерживаются во всех версиях Linux. Например, такие файловые системы, как minix (для операционных систем Minix), befs (для операционных систем BeOS) и affs (для операционных систем Amiga), очень полез­ ны, когда необходимо смонтировать и получить доступ к старым резервным данным.

Даже популярные файловые системы могут поддерживаться не полностью. Напри­ мер, файловая система reiserfs не полностью поддерживается операционной систе­ мой Kubuntu, по крайней мере на момент написания книги.

Соэдани е файловых сисrе м и управпени е ими Ubuntu позволяет использовать два варианта разбиения жесткого диска: автома­ тически, используя программу-установщик и схему по умолчанию, и вручную в процессе первой установки Linux. Программа-установщик позволяет определить, необходимо ли форматировать весь жесткий диск и разделы, предназначенные для установки Linux, или же для создания необходимых разделов достаточно исполь­ зовать исключительно свободное место на жестком диске. Для выполнения ручной настройки необходимо выбрать параметр, позволяющий осуществить индивиду­ альную разбивку.

При разбивке диска вручную приложение для разбиения жесткого диска (не­ когда называемое Disk Druid) предоставляет возможность самостоятельно разби­ вать жесткий диск на разделы. Позже появилось множество консольных утилит, позволяющих работать с разделами жесткого диска и файловыми системами, соз­ даваемыми на этих разделах.

Разбиение жесrких дисков Исторически жесткие диски использовали 32-битные таблицы разбиения РС-BIOS с головной эагруэочной записью (MBR), что ограничивало размер разделов до 2 Тбайт и позволяло создавать лишь четыре основных раздела на одном жестком диске.

Использование расширенных разделов сняло последнее ограничение. Для преодо­ ления границы в 2 Тбайт таблицы разбиения PC-BIOS были заменены GPT (таб­ лицами разбиения GUID).

Стандартной командой, предназначенной для работы с разделами жесткого диска, является команда fdi sk, но, поскольку она не может работать с разделами GPT, она постепенно уступает место другим командам. Более эффективным и под­ держиваемым приложеннем является команда ра rted.

ПРИМЕЧАНИЕ -------­ Если для разбиения, изменения размера и выполнения других операций с жестким диском вы nред­ почитаете использовать графические приложения, то можете попробовать приложения gparted или qtparted. Названия команд и программных пакетов одинаковы для обоих приложений, но ни одно из них не устанавливается по умолчанию.

146 Глава 7. Администрирование файловых систем Разб ие н ие исесrко rо д иска с помощью команды fdisk Команда fd i sk является весьма полезным инструментом для просмотра и измене­ ния разделов дисков. Однако помните, что изменение или удаление разделов может уничтожить ценные данные, хранящиеся на диске, поэтому, прежде чем выполнять какие-либо действия, убедитесь в их необходимости. Чтобы использовать команду fd i sk для просмотра информации о разделах жесткого диска, выполните следую­ щую команду от имени суперпользователя:

$ sudo fdi sk. 1 Отображае т все разделы каждого жес ткого диска Di sk /dev / sda : 82. 3 GB. 82348277760 bytes 255 heads. 63 sectors /track. 1 0 0 1 1 cy l i nders U n i t s cy1 i nders of 16065 * 512 8225280 bytes = = Dev i ce Boot Sta rt End B1 ocks Id System /dev / s d a 1 * 1 3 104391 83 L i nux 14 9881 79264710 83 L i nux /dev / sda 9882 10011 1 044225 82 L i nux swa p /dev / sda В данном примере выводится информация о жестком диске размером 80 Гбайт, который разбит на три раздела. Первый раздел ( /dev / sda 1 ) является небольшим загрузочным разделом / boot, настроенным в файловой системе ехtЗ ( I d 83). Стоит отметить, что знак * обозначает, что первый раздел является загрузочным. Следую­ щий раздел предназначен для корневой файловой системы и также относится к ехtЗ. Последний раздел - раздел подкачки Linux.

ПРИМЕЧАНИЕ -------­ Начиная с версии 2.6.20 ядра Linux, и IDE-, и SСSI-диски используют имена устройств в формате /dev/sd?, где знак ? заменяется буквой (а, Ь, с и т. д.). В более старых версиях Ubuntu только SСSI-диски и USВ-накопители используют имена /dev/sd?. Жесткие диски IDE используют формат имени /dev/hd?.

Если на вашем компьютере установлено несколько дисков, команда fdi sk - отобразит информацию обо всех дисках, если вы не укажете конкретный:

$ sudo fdi sk. - 1 /dev/sdb Выводит информацию о разделах выбранного диска Чтобы с помощью команды fd i sk работать с конкретным диском, укажите, с каким диском необходимо работать, не используя никаких параметров:

$ sudo fdi sk. /dev/sda Выполняе т команду fdi sk в ин терактивном режиме для первого диска Comma nd ( m for he l p ) : m Для о тображения помощи нажни те клавишу т Command acti on а togg l e а ЬооtаЫ е f1 a g Ь ed i t b s d d i s k 1 a bel с togg 1 e the dos compati bi 1 i ty f1 ag d de1 ete а pa rt i t i on 1 1 i st k nown pa rt i ti on types т pri nt thi s menu n a dd а new pa rt i t i on о c reate а new empty DOS part i t i on tаЫ е р pri nt the parti t i on tаЫ е q qui t wi thout s a v i ng cha nges Соэдание файловых систем и управление ими s create а new empty Sun di s k 1 abe t cha nge а pa rti t i on ' s system i d u cha nge d i sp1 ay/ent ry uni ts v veri fy the pa rt i ti on tаЫ е w wri te tаЫ е to d i sk and exi t х extra funct i ona 1 i ty ( experts on 1 y ) Command ( m for he1 p ) :

На основании выведенной на экран информации вы можете использовать лю­ бую указанную команду для работы с жестким диском. В частности, вы можете использовать параметр р (выполняющий ту же функцию, что и fd i sk - 1 ), n (для создания нового раздела), d (для удаления существующего раздела), 1 (для отобра­ жения известных типов файловых систем) или t (для изменения типа файловой системы раздела). В следующих примерах показаны некоторые операции с коман­ дой fdi sk:

Command C m for he1 p ) : d Запрашивает разрешение на удаление раздела Parti t i on number ( 1 - 4 ) : 4 Отображае т номер удаляемого раздела Command ( m for he1 p ) : n Создае т новый раздел диска Fi rst cy1 i nder ( 1 - 4983, defau1 t 1 ) : 1 Выбра ть первый цилиндр (или нажните клавищу Enter J Выбра ть последний цилиндр Last cy1 i nder ( defa u 1 t 4983 ) : о о о (или нажни те клавишу Enter ) Comma nd C m for he1 p ) : а Делае т раздел з а грузочным Введ и те номер з а грузочного раздела Parti t i on number ( 1 - 3 ) : Выбери те тип файловой сис темы Command ( m for he1 p ) : t Parti ti on number ( 1 - 3 ) : 3 Выбери те раздел для изменения Нех code ( type L to 1 i st codes ) : 82 Сдела т ь раздел разделом подка чки Если вы не укажете иного, команда fdi sk задаст тип нового раздела как ехtЗ (83).

' Для отображения списка типов файловых систем, отображаемого с помощью па раметра 1, а также соответствующих им и шестнадцатеричных кодов вы можете воспользоваться параметром L. Как говорилось выше, число 82 соответствует раз­ делу подкачки. Среди других типов разделов Linux, которые могут вас заинтере­ совать, можно назвать Linuх-расширенный (85), Linux-LVM (8е ), Linuх-программ­ ный массив (fd) и EFI/GTP (ее).

Для разделов Windows вы можете назначать разделы HPFSjNTFS (7), Win­ dows 95 FAT32 (Ь), FAT 1 6 (6) или Windows 95 FAT32 LBA (с). Среди других по­ добных типов файловых систем UNIX можно назвать Minix (Ье или bf), BSD jOS (е4), FreeBSD (ее), OpenBSD (ef), NeXTSTEP (fO), Darwin UFS ( fl) и NetBSD (f4).

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

До сих пор нами не производилось никаких изменений в таблице разбиения.

Если вы абсолютно уверены в правильиости вносимых измененИй, то для приме­ нения изменений к таблице разбиения разделов введите w. Для отмены изменений (или выхода из fd i sk после их применения) введите q.

148 Глава 7. Администр и рование файловых систем Копирование та бпиц разбиени я посредством коман д ы sfdisk Для создании резервной копии или дублированив таблицы разбиении жесткого диска используйте команду s fd i sk:

$ sudo sfdi sk · d /dev/ sda > sda · taЬl e Выполняе т резервное копирование таблицы разбиения в файл $ sudo sfdi sk /dev/sda < sda · taЬl e Восс танавливае т таблицу разбиения из файла $ sudo sfdi sk · d /dev/sda 1 sfdi sk /dev/ sdb Копируе т табли цу разбиения с одного диска на другой И зменени е ра зделов д иска с помощью коман д ы parted Как и fd i sk, команда pa rted может быть использована для отображения или изме­ нения разделов диска. Однако команда ра rted предоставляет еще некоторые полез­ ные функции. С помощью следующей команды вы можете отобразить разделы диска jdevjsda:

$ sudo parted /dev/sda pri nt Model : АТА FUJ I TSU MPG3409A ( sc s i ) Di s k /dev/ sda : 41. 0GB Sector s i ze ( l og i ca l / p hys i ca l ) : 512В/512В Pa rti t i on Та Ь l е : msdos Fi l e system F l ags Si ze Туре End Numbe r Sta rt 206МВ 206МВ boot pri ma ry ext 32. 3kB 39. 5GB. 39. 3GB pri ma ry ext 206МВ l i nux- swap 41. 0GB 1536МВ pri ma ry 39. 5GB Из приведеиной информации видно, Что диск имеет классическую метку (или таблицу разбиения диска) msdos или gpt. В данном случае приведена таблица раз­ биения msdos.

Чтобы выполнить команду parted в интерактивном режиме, введите ра rted, а затем, если у вас несколько устройств, имя соответствующего устройства хране­ ния информации, с которым хотите работать (например, /dev / sda):

$ sudo parted GNU Pa rted 1. 7. Usi ng /dev / sda Wel come to GNU Pa rted ! Туре ' hel p ' to v i ew а l i st of commands.

( pa rted ) При интерактивном использовании команды pa rted вы можете как целиком вводить команды, так и набирать только несколько первых букв команд и нажимать клавишу ТаЬ для их дополнения (в консоли bash). Если же вы хорошо знакомы с ис­ пользуемыми командами, то можете просто вводить необходимое количество букв, чтобы команда ра rted определяла по ним необходимую для выполнения команду (в Cisco IOS): р для вывода, mk l для mkl a bel и т. д.

СОэдание файловых систем и управление ими НИМАНИЕ ----- 8 отличие от fdisk, parted сразу же применяет изменения к разделам, не выполняя предварительную запись на диск, поэтому не рассчитывайте на возможность отмены внесенных изменений, прервав выполнение команды parted.

Для каждой команды ра rted предусмотрена возможность использования со всеми арrументами (например, mkра гt l og i ca l ехtЗ 1 0. 7GB 1 7. 0GВ), однако вы мо­ жете просто выполнить необходимую команду (mk part), и pa rted переведет вас в интерактивный режим:

( pa rted ) mkpart Создае т новый раздел Pa rt i t i on type? [ l ogi cal ] ? pr1 mary Fi l e system type? [ ext 2 J ? ехtЗ Sta rt? 17GB End? 24GB Старайтесь не использовать команду mkpa rtfs, поскольку она не может пра­ вильно создавать разделы ехtЗ. Вместо нее для создания раздела ехtЗ восполь­ зуйтесь командой mkpa rt (как показано выше), а затем отформатируйте.еrо с по­ мощью pa rted, испольуя команду mk fs. ехtЗ. Вообще, поддержка файловых систем типа ехtЗ у pa rted отсутствует. Изменение размеров общих разделов Linux может понадобиться, если нужно освободить место для нового раздела, напри­ мер:

( pa rted ) res1 ze 2 Изменяе т размер раздела Sta rt? [ 1. 2GB] 1. 2GB End? [ 24GB] 10GB ВНИМАНИЕ - ---­ Если вы не используете LVM, эта команда просто разрушит вашу систему.

Для изменения размера разделов NTFS предназначена команда ntfs res i ze.

В Ubuntu эта команда поставляется с программным пакетом ntfsprogs, в котором также присутствуют команды для создания (mkfs. ntfs), настройки (ntfsfi x) и по­ лучения информации о разделах NTFS (ntfs i nfo).

метками файл ов ых систем Работа с Термин сметка• в отношении разделов дисков может использоваться для обозна­ чения двух разных вещей: меткой диска называется таблица разбиения (как видно из возвращаемой командой ра rted информации), а метка раздела используется для обозначения имени отдельного раздела. Чтобы просмотреть метку раздела, вос­ пользуйтесь командой е21 а Ье 1 :

$ sudo e2l aЬel /dev/sda /home Чтобы назначить метку разделу, выполните следующую команду:

$ sudo e2l aЬel /dev/sda2 mypart;

t;

on 150 Глава 7. Администрирова н ие файловых систем Не забывайте, что каталог / etc / fstab, как показано ниже, иногда использует метку раздела для монтирования раздела. Изменение этой метки может привести к сбоям при загрузке системы.

LABEL=/boot / boot ехtЗ defa u l ts Чтобы найти раздел, если известна только его метка, выполните следующую команду:

$ sudo f;

ndfs LAВEL-mypart;

t ;

on /dev / sda Форматирован и е файповой си сrемы Если вы используете несколько разделов дисков, то можете на каждом из них соз­ дать отдельную файловую систему. В большинстве операционных систем Linux для создания и Проверки файловых систем используются стандартные для Linux команды. Команды mkfs и fsck позволяют форматировать и проверять файловые системы соответственно.

Команда mkfs выступает в качестве хранилища многих команд, предназначен­ ных для форматирования отдельных типов файловых систем, например mk fs. ext2, mkfs. ехtЗ, mkfs. c ramfs, mkfs. msdos, mkfs. ntfs и mkfs. vfat. Если к этим командам доба­ вить пакеты, поддерживающие другие файловые системы, то для беспрепятственной работы с mkfs будут доступны дополнительные команды, среди которых можно назвать mkfs. bfs, mkfs. mi n i x, mk fs. xfs и mkfs. xi a fs, допускающие как непосредствен­ ное свое выполнение (например, mkfs. vfat /dev / sdЫ ), так и посредством команды mk fs (например, mkfs - t vfat /dev/ sdЫ ).

Создание файповой системы на разделе жест кого д и ска Среди основных программных пакетов, необходимых для создания и проверки файловой системы Ubuntu, можно назвать util-linux (включает в себя команду mkfs и другие приложения общего назначения) и e2fsprogs (включает в себя специаль­ ные приложения файловых систем ext2jext3). Специальные команды mk fs для различных типов файловых систем входят в программные пакеты ntfsprogs (пред­ назначен для работы в NTFS), dosfstools ( M S - DOS и VF АТ), xfsprogs (XFS), jfsutils OFS), mtd-utils OFFS и J FFS2) и reiserfs-utils (reiserfs). Основные приложения устанавливщотся вместе с Ubuntu.

Ниже приведены примерЬ1 использования команды mkfs, позволяющие созда­ вать файловые системы (убедитесь, что добавлен параметр - t ):

$ sudo mkfs ·t ехtЗ /dev/ sdЬl Создает файловую сис тему ехtЗ на разделе sbal $ sudo mkfs ·t ехtЗ · v - с /dev/ sdЬl Расширенная команда. выполняющая также поиск поврежденных блоков $ sudo mkfs. extЗ · с /dev/sdЬl То же Параметр - L позволяет добавить метку новому разделу:

$ sudo mkfs. extЗ - с - L mypart ;

t ;

on /dev/ sdЬl Добавляе т разделу ме тку Соэдание файловых систем и управление ими Создание ви ртуально й файп о вой сисrе мы Если вы хотите лишь ознакомиться с различными типами файловых систем или сделать файловую систему более гибкой (другими словами, не привязанной к фи­ зическому диску), то можете создать виртушzьную файловую систему. Виртуальная файловая система - это файловая система, не создающая файлы на существующей файловой системе, однако вы можете форматировать ее так же, как и файловую систему любого другого типа, перемешаться по ней и получать к ней доступ с дру­ гих компьютеров.

Виртуальные файловые системы могут использоваться, например, при созда­ нии Live CD или з апуске выделенных виртуальных файловых систем. В следую­ щем примере создается пустой файл-образ диска объемом 500 Мбайт, затем он форматируется как файловая система и монтируется, чтобы обеспечить доступ к данным файловой системы:

$ dd i f=/dev/zero of=щydi sk count=2048000 Создае т заполненный нулями файл объенон 1 Гбай т $ du · sh mydi sk Проверяет размер вир туаль ной файловой сис темы lOOlM mydi sk $ mkfs · t ext3 mydi sk Создае т файловую сис тему на mydi sk mydi sk i s not а Ы осk speci a l dev i ce Conti nue (y/n ) : у $ sudo mkdi r /mnt/i mage Создает точкv мон тирования Мон тируе т файл mydi sk $ sudo mount · о l oop mydi sk /mnt/i mage в ка талог lmnt l image В данном примере команда dd создает пустой файл-образ диска размером 2 048 000 блоков ( приблизительно 1 Гбайт ). Затем команда mk fs создает файловую систему ехtЗ (вообще же команда mk fs может создать файловую систему любого необходимого типа). Поскольку файл не является специальным блочным устрой­ ством, как в предыдущем случае форматирования разделов диска, mkfs предупредит вас о начале создания новой файловой системы. После создания точки монтиро­ вания команда сообщит, что вы смонтировали файл (mydi sk) как петлевое устрой­ ство ( - о l oop). Стоит отметить, что из вышеуказанных команда mount является единственной, требующей привилегий суперпользователя.

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

$ sudo cd /mnt/i mage Переходи т к точке мон тирования $ sudo mkdi r test Создает ка талог в файловой сис теме $ sudo ер /etc/hosts Копирует файл в файловую сис тему Выходи т из файповой сис темы $ cd $ sudo umount /mnt/i mage Демон тируе т файловую систему После завершения процесса демонтирования виртуальной файловой системы вы можете переместять ее в другую файловую систему или записать на компакт-диск 152 Глава 7. Администр и рование файловых систем для последующего использования в другом месте. Если вам больше не нужна фай­ ловая система, просто удалите соответствующий файл.

П росмотр и изменение атрибутов фа йло во й системы С помощью команд tune2fs и dumpe2fs вы можете просматривать атрибуты фай­ ловых систем ext2 и ext3. Команда tune2fs также может быть использована для изменения атрибутов файловой системы. Для создания же раздела подкачки ис­ пользуйте команду swa pfs:

Отображае т настраиваемые а трибуты файловой $ sudo tune2fs ·1 /dev/sdal систены $ sudo dumpe2fs · h /dev/sdal То же dumpe2fs 1. 39 ( 29 - Мау - 2006 ) Fi l esystem vol ume name : Last mounted on : Fi l esystem UU I D : f5f261d3 - 3879-41d6- 8245 - f2153b Fi l esystem mag i c number : OxEF Fi l esystem revi s i on #: 1 ( dynami c ) Fi l esystem features : has_journal ext_attr res i ze_i node di r_i ndex fi l etype needs_recovery spa rse_super l a rge_fi l e Defaul t mount opt i ons : user_xattr acl Fi l esystem state : cl ean Errors beha v i or : Cont i nue Fi l esystem OS type : Li nux I node count : Bl ock count : Reserved Ы осk count : Free Ы ocks : Free i nodes : Fi rst Ы осk : О Bl ock s i ze : Fragment s i ze : Reserved GDT Ы ocks : Bl ocks per g roup : Fragments per g roup : I nodes per g roup : I node Ы ocks per g roup : Fi l esystem c reated : Fri Jun 15 12 : 13 : 17 Last mount t i me : Tue Jul 24 -06 : 47 : 35 Last wri te t i me : Tue Jul 24 06 : 47 : 35 Mount count : Maxi mum mount count : Last checked : Fri Jun 15 12 : 13 : 17 Check i nterva l : О ( ) Reserved Ы ocks ui d : О ( user root ) Reserved Ы ocks gi d : О ( g roup root ) Fi rst i node : 1 Соэдание файловых систем и управление ими I node s i ze : Journa l i node : Fi rst orphan i node : Defaul t di rectory hash : tea Di rectory Hash Seed : 4137d20d - b398 -467 b - a47a - a9 1 1 0416b Journ a l backup : i node Ы ocks Journa l s i ze : 128М Данные команды отображают большой объем информации о файловой системе.

Например, если вы используете файловую систему, для которой нужно создавать большое количество небольших файлов (например, новостной сервер), то с по­ мощью этих команд можете проверять, остались ли у вас файлы inode. Значение поля Maxi mum mount count определяет количество проверок файловой системы после ее монтирования. Среди прочей информации вы можете также найти дату и время создания файловой системы, ее последнего монтирования, а также изменения.

Чтобы изменить настройки существующей файловой системы ext2 или ехtЗ, воспользуйтесь командой tune2fs. Следующая команда изменяет количество необ­ ходимых монтирований файловой системы перед ее принудительной проверкой:

$ sudo tune2fs - с 31 /dev/ sda1 Ус танавливает количество мон тирований равным # tune2fs 1. 39 ( 29 - Мау - 2006 ) Setti ng maxi ma l mount count to Если же вы хотите выполнять проверки файловой системы на основе заданных временных интервалов, а не количестве монтирований, отключите проверку mount ­ count, установив его в значение - 1 :

$ sudo tune2 fs - с 1 /dev/ sda tune2fs 1. 39 ( 29 - Мау - 2006 ) Sett i ng maxi ma l mount count to - Для активизации динамической ( с временн6й зависимостью) проверки ис­ пользуйте параметр i : $ tune2fs - 1 10 /dev/ sda1 Проверяет сис тему каждые 10 дней sudo $ sudo tune2fs. ;

1d /dev/sda1 Проверяет сис тему ежедневно $ Проверяет сис тему каждые 3 недели sudo tune2 fs - 1 Зw /dev/sda tune2fs ;

бm /dev/ sda1 сис тему каждые б месяцев $ sudo Проверяет.

tune2fs ;

О / dev/ sda $ Отключае т sudo динамическую проверку.

У вас всегда должна быть включена либо mount-count, либо динамическая проверка.

Чтобы иреобразовать файловую систему ext2 в ext3, используйте параметр - j (с записью действия в журнал):

$ sudo tune2 fs -j /dev/sda1 Включает журналирование изменения ext2 на ехtЗ Создание и ис п ользование разделов п одкачки Для хранения избыточных данных системной оперативной памяти в операцион­ ных системах Linux используются разделы подкачки. Если вы не создали раздел 154 Глава 7. Админи стр ирование файловых си стем подкачки при установке Linux, то можете создать его позже, воспользовавшись командой mkswap. Раздел подкачки может быть создан либо на стандартном раз­ деле жесткого диска, либо на специально отформатированном для этого разделе:

$ sudo mkswap /dev/sdal Форма тируе т раздел sdal как раздел подкачки Sett i ng up swa pspace vers i on 1. s i ze 205594 kB = Чтобы проверить раздел подкачки на наличие поврежденных блоков, вместе с командой mkswap используйте параметр с: $ sudo mkswap · с /dev/sdal Если у вас нет свободного раздела, то в качестве обласm подкачки можете использовать файл:

$ sudo dd ;

f•/dev/zero of•/tmp/ swapf;

l e count• 65536+0 records i n 65536+0 records out 33554432 bytes ( 34 МВ ) copi ed. 1. 56578 s. 21. 4 MB/ s $ sudo chmod 600 /tmp/ swapf1 l e $ sudo mkswap /tmp/swapf1 l e Sett i ng u p swa pspace vers i on 1. s i ze 67 1 04 kB = В данном примере команда dd создает файл swa pfi 1 е размером 32 М байт. Затем, чтобы во время работы не отображались предупреждения от команды swapon, ко­ манда chmod закрывает к этому файлу доступ. После этого, чтобы назначить файл /tmp/swapfi 1 е разделом подкачки, команда mkswap форматирует его.

После создания раздела или файла подкачки необходимо, воспользовавшись командой swa pon, заставить систему использовать созданную область подкачки:

$ sudo swapon /dev/sdal Задействуе т раздел /dev/sdal в ка честве раздела подкачки $ sudo swapon - v /dev/sdal Задействует раздел в ка чес тве раздела подка чки и о тображает больше информации о нем swa pon on /dev / sda $ sudo swapon · v /tmp/ swapf;

l e Задействуе т файл l tmp lswap fi le в качес тве раздела подкачки swapon on /tmp/ swa pfi 1 e Кроме того, вы можете использовать команду swapon и просмотра списка для файлов и разделов подкачки:

$ swapon - s Отображае т список всех задейс твованных файлов и разделов подка чки Туре Si ze F i 1 ename Used Pri ori ty pa rti t i on /dev / sda5 - 1020 - о fi 1 е / tmp/ swa pfi 1 e Чтобы деакmвировать область подкачки, воспользуйтесь командой swapoff:

$ sudo swapoff - v /tmp/swapf;

l e swapoff o n /tmp/ swa pfi 1 e Области подкачки используются в соответствии с их приоритетом. Ядро в пер­ вую очередь задействует области с высоким приоритетом, а затем использует Монтирование и демонтирование файловых систем остальные. Области с одинаковым приоритетом задействуются одновременно и могут пересекаться. С помощью параметра р вы можете определить приоритет областей подкачки:

$ sudo swapon - v - р 1 /dev/sdal Назначает разделу sdal высший приорите т подка чки М о и тирован н е и демонтирование файловы х с исте м Перед использованием обычной, не предназначенной для подкачки файловой системы необходимо добавить ее в каталог в дереве файловых систем вашего ком­ пьютера, смонтировав ее. Ваша корневая файловая система ( / ), а также другие файловые системы, которые вы постоянно используете, обычно монтируются ав­ томатически на основе записей в файле /etc/ fstab. Другие файловые системы мо­ гут быть смонтированы вручную по мере надобности с помощью команды mount.

М о и тированне файловых си сrем из фа йла fstab Во время первой установки Linux файл 1 etc / fstab, содержащий информацию о ва­ шей корневой файловой системе и других файловых системах, обычно устанавли­ вается автоматически. После этого данные файловые системы могут монтировать­ ся автоматически во время загрузки системы либо вручную при необходимости (с готовыми к использованию точками монтирования и другими параметрами).

Рассмотрим пример файла /etc/ fstab:

/dev / Vol GroupOO/ LogVol OO ехtЗ defa u l ts / boot ехtЗ defa u l ts LABEL=/ boot о о tmpfs tmpfs defa u l ts / dev/ shm о оо devpts g i d=5. mode= devpts /dev/pts о о sysfs defa u l ts / sys sysfs о о defaul ts proc / proc proc о о defa u l ts /dev/Vol GroupOO / LogVol 0 1 swap swap о о /dev/ sda 1 mnt/wi ndows vfat noauto ПРИМЕЧАНИЕ -------­ Чтобы вам было понятнее, в приведенном выше примере для каждой файловой системы, имеющей­ ся на жестком диске, список номеров UUID был удален. Для любой файловой системы эти номера имеют вид UUID=da2dЬc48-8б2e-4fЬe-9529-a88b57Ь1 Sbac и записываются перед типом файловой системы.

Как видно из приведеиного примера, все файловые системы, за исключением /dev / s d a 1 (параметр noauto), монтируются автоматически. Корневой раздел ( / ) и раздел подкачки ( swap) настраиваются как тома LV M (управление логическими томами), которые облегчают удаление или добавление физических разделов, со­ держащих ID томов. Среди файловых псевдосистем (не связанных с каким-либо разделом) можно назвать devpts (интерфейс для псевдотерминалов pty), sysfs 156 Глава 7. Администрирование файловых систем (информация ядра 2.6) и proc (информация более ранних версий ядра). Раздел диска 1 dev 1 sda 1 в данном примере был добавлен вручную и предназначен для мон­ тирования раздела Windows, хранящегося на данном устройстве.

Файл /etc / fstab здесь не является хранилищем информации о съемных носи­ телях, используемым по умолчанию, поэтому Hardware Abstraction Layer (HAL) автоматически определяет съемные носители и монтирует их в специально отве­ денные точки монтирования каталога /med i a (на основании ID тома на носителе).

В табл. 7.2 приведено описание полей файла /etc/ fstab.

Уабпица 7 2. Поля файла /etr./fsUJb.

Попе Оnисание Имя устройства, содержащего файловую систему. По умолчанию данное поле оодержит имя устройства раздела для монтирования (например, /dev/sda1}, однако значение этого поля также может быть равно LABEL или содержать уникальный идентификатор (UUID} 2 Указывает точку монтирования. Файловая система содержит все данные, начиная от информации о точке монтирова ния и заканчивая информацией о структуре дерева каталогов, если в дан ной точке не была ранее смонтирована другая файловая система Указывает тип файловой системы. Для пОлучения большей информации об основных типах файловых систем ознакомьтесь с табл. 7. СОдержит параметры команды mouпt, среди которых можно отметить пoauto (используется для предотвращения монтирования файловой системы во время загрузки} и го (монтирует файловую систему, предназначенную только для чтения}.

Чтобы дать возможность всем пользователям монтировать файловую систему, добавьте в это поле параметр user (пользователь} или owпer (владелец}. Параметры должны быть разделены запятыми. Для получения более подробной информации о подде рживаемых параметрах обратитесь к странице справочника, посвященной команде mouпt Дан ное поле содержит значение только в том случае, если вы использовали для выполнения резервного копирования данных команду dump. Значение 1 означает, что файловая система должна быть разгружена, О что разгрузку выполнять не следует Число в этом поле определяет, должна ли файловая система быть проверена б с помощью команды fsck. Значение О означает, что файловая система не нуждается в проверке, значение 1 - что файловую систему необходимо проверить в первую очередь (используется в качестве корневой файловой системы}, значение 2 - что файловая система может быть проверена после за вершения проверки корневой файловой системы Вы можете создавать собственные записи в файле /etc / fstab для разделов лю­ бого жестко диска или съемного носителя. Удаленные файловые системы (NFS, Samba и др. ) также могут содержать записи в файле jetc / fstab, чтобы автоматиче­ ски монтироваться во время загрузки или позже вручную.

Команда mount Команда mount предназначена для просмотра смонтированных файловых систем, а также для монтирования любых локальных ( жесткий диск, запоминающее устройство USB, компакт-диск, DVD и т. д.) или удаленных (NFS, Samba и т. д.) Монтирование и демонтирование файловых систем файловых систем. Ниже приведены примеры использования команды mount для просмотра смонтированных файловых систем:

$ mount Отображае т список смонтированных. удаленных и локаль ных файловых систем /dev/sda7 on 1 type ехtЗ ( rw ) proc o n /proc type proc ( rw ) sysfs o n / sys type sysfs ( rw ) devpts o n / dev / pts type devpts ( rw. g i d=5. mode=620 ) /dev/ sdaб on /mnt /debi a n type ехtЗ ( rw ) /dev/ sdaЗ o n /mnt/ s 1 ackwa re type ехtЗ ( rw ) tmpfs o n /dev / s hm type tmpfs ( rw ) nопе o n / proc / sys / fs / b i nfmt_mi sc type bi n fmt_mi sc ( rw ) sunrpc o n / v a r/ 1 i Ь/nfs/ rpcpi pefs type rpc_pi pefs ( rw ) Для отображения только конкретных смонтированных файловых систем ис­ пользуйте параметр t: $ mount ·t ext3 Отображает смон тированные ехtЗ -файловые сис темы /dev/sda7 on 1 type ехtЗ ( rw ) /dev /sdaб o n /mnt /debi a n type ехtЗ ( rw ) /dev/ sdaЗ o n /mnt / s 1 ackwa re type ехtЗ ( rw ) Для отображения меток разделов с информацией о монтнровании используй­ те параметр - 1 :

$ mount · t ext3 - 1 Отображает смонтированные ехtЗ -файловые системы и их метки /dev/ sda7 on 1 type ехtЗ ( rw ) [ / 123] /dev / sdaб on /mnt/debi a n type ехtЗ ( rw ) [ /mnt /debi a n ] /dev/sdaЗ o n /mnt / s 1 ackwa re type ехtЗ ( rw ) [ / mnt/ s 1 ackwa re] Ниже представлен пример использования команды mount для монтирования устройства /dev/sda l в существующий каталог /mnt/mymount:

Мон тируе т локальную файловую систему $ sudo mount /dev/sdal /mnt/щymount/ $ sudo mount - v /dev/sdal /mnt/щymount/ МЬнтирут файловую систе. выводит более подробную информацию mount : you d i dn " t speci fy а fi 1 esystem type for /dev / sdal I wi 1 1 t ry type ехtЗ /dev/ sda l on /mnt /mymount type ехtЗ ( rw ) В данном примере команда mount ищет записи в фaйлe/etc/ fstab каталога /dev/ sda l либо же пытается определить тип смонтированной файловой системы.

Для точного определения типа файловой системы, предназначенной для мон­ тнрования, используйте параметр - t:

$ sudo mount -v -t ехtЗ /dev/sdal /mnt/mymount/ Монтируе т файловую сис тему ехtЗ /dev/sda l on /mnt /mymount type ехtЗ ( rw ) В ы также можете отобразить метку и имя монтируемого раздела:

$ sudo mount - vl - t ext3 /dev/sdal /mnt/щymount/ МЬнтирует файловую сис тему и о тображает ее меткv 158 Глава 7. Админи стр и рова ние файловых систем Если вы захотите смонтировать раздел, информация о котором уже содержится в файле fstab, то используйте либо точку монтирования, либо имя соответствую­ щего устройства. Например, с помощью записи /dev / s d a l /mnt /mymount ехtЗ defa u l ts в файле fsta b вы можете смонтировать файловую систему любым из предло­ женных ниже способов:

$ sudo mount · v /dev/ sdal МОнтирует файловую сис тему по имени устройс тва хранения /dev / sd a l on /mnt/mymount type ехtЗ ( гw ) $ sudo mount - v /mnt/mymount/ Монтирует файловую систему на основании точки монтирования /dev / s d a l on /mnt/mymount type ехtЗ ( гw ) Добавив параметр · о и разделив запятыми список параметро в, в ы можете опредеJIИТЬ параметры монтированив раздела. К этим параметрам относятся те же, которые могут быть добавлены в четвертое поле файла /etc / fstab. По умолча­ нию разделы монтируются с правами чтения и записи, однако вы можете точно определить, монтировать ли файловую систему длв чтения и записи ( rw) или только длв чтении (ro ):

$ sudo mount - v · t ехtЗ - о rw /dev/sdal /mnt/mymount/ Мон тируе т раздел с правами ч тения и записи /dev / s d a l on /mnt/mymount type ехtЗ ( гw ) $ sudo mount · v · t ехtЗ - о ro /dev/ sdal /mnt/mymount/ Мон тируе т раздел с правами только ч тения /dev / s d a l on /mnt /mymount type ехtЗ ( го ) Команда mount может использовать еще несколько полезных параметров.

О noat i me не обновляет время доступа к файлам, полезен при работе в файловых системах с большим количеством входящих и исходящих потоков, таких как почтовые серверы и журналы.

О noexec предотвращает выполнение бинарных файлов, хранящихся на данной файловой системе. Параметр может использоваться для повышения безопас­ ности, например для каталога / tmp в среде с неавторизованными пользова· телями.

О гemount - изменяет параметры монтированной файловой системы. С помощью этого паР,аметра вы можете размонтировать файловую систему, а потом снова ее смонтировать с уже новыми параметрами. В следующем примере изменяют­ ся права чтения и записи только на чтение:

$ sudo mount · v -о remount, ro /dev/sdal /dev / s d a l on /mnt/mymount type ехtЗ ( го ) О · Ь i n d - монтирует существующую файловую систему, используя другую точ· · ку монтирования. Если раздел /dev/ sda l уже смонтирован в каталог /mnt/mymount, выполните следующее:

$ sudo mount · · bi nd · v /mnt/mymount/ /tmp/щydi r/ /mnt/mymount on /tmp/myd i г type none ( гw. bi nd ) 159 · Монтирование и демонтирование файловых систем Теперь одна и та же файловая система доступна по двум адресам. Новая точка монтированиЯ обладает теми же параметрами, что и оригинальная.

О -roove перемещает файловую систему из одной точки монтирования в другую.

- Если раздел 1 dev 1 sda 1 уже смонтирован в каталог /mnt/mymount, то использование данного параметра переместит файловую систему в каталог /tmp/mydi r:

$ sudo mount - v - - move /mnt/mymount/ /tmp/mydi r/ /mnt/mymount on /tmp/mydi r type поnе ( rw ) Аналогично файлу подкачки в ы можете создать файловую систему в файле, а затем смонтировать ее. Данная процедура называется петлевы.м, монтированием.

Порядок создания и монтирования файла описан в подразд. • Создание виртуаль­ ной файловой системыj) разД. •Создание файловых систем и управление ими •.

Обычно петлевое монтирование файла используется после загрузки установоч­ ного компакт-диска или Live CD Linux. Выполнив петлевое монтирование образа компакт-диска, вы можете просматривать его содержимое и копирdвать файлы с него на свой жесткий диск.

В следующем примере команда mount автоматически выбирает существующее петлевое устройство при монтировании файла-образа компакт-диска (тип файло­ вой системы iso9660). Из возвращаемой командой информации видно, что было выбрано устройство 1 dev 1 l оорО:

$ sudo mount -v ·t i so9660 -о l oop /tmp/myi mage. i so /mnt/mymount/ mount : goi ng to use the l oop dev i ce /dev / l oopO /tmp/myi mage. i so on /mnt/mymount type ехt З ( rw. l oop=/dev/ l oopO ) В следующем примере загрузочный образ запоминающего устройства USB Linux di skboot. i m g загружается в каталог / tmp. Ниже приведен пример монтирова­ ния загрузочного образа:

$ sudo mount - v - о l oop /tmp/di skboot. i mg /mnt/mymount mount : goi ng to use the l oop dev i ce /dev / l oopO mount : you d i dn ' t speci fy а fi l esystem type fo r /dev / l oopO I wi l l t ry type vfat /tmp/di skboot. i mg on /mnt /mymount type vfat C rw. l oop=/dev / l oopO ) Для просмотра состояния петлевых устройств используйте команду l osetup:

$ sudo l osetup /dev/l oopO Отображае т список смон тированных петлевых устройств /dev / l oopO : [ 0807 ] : 1009045 C / tmp/d i skboot. i mg ) Если петлевое монтирование прерывается или у вас возникают проблемы в ходе демонтирования раздела, попробуйте выполнить следующую команду:

$ sudo l osetup -d /dev/l oopl Принул и тель ное демон тирование смон тированного петпевого устройства РИМЕЧАНИЕ -------­ Команда mount может также использоваться для привязки к ресурсам NFS или Samba/Windows CIFS.

Для получения более подробной информации о монтировании этих типов удаленных файловых систем обратитесь к гл. 12.

160 Глава 7. Администрирование файловых си стем Демонтированне фа йловых си сrем Для размонтирования файловых систем предназначена команда umount. Вы можете осуществлять демонтираванне файловых систем, используя имя устройства или точку монтирования, однако точку монтирования использовать предпочтительнее, поскольку это позволяет избежать проблем при связанном монтировании (одно устройство, несколько точек монтирования):

$ sudo umount -v /dev/ sdal Размон тирует устройс тво по его инени.

/dev / sda 1 umounted $ sudo umount -v /mnt/щymount/ Размон тируе т устройство по точке нон тирования /tmp/ d i skboot. i mg umounted Если устройство занято, размонтировать его не удастся. Наиболее распростра­ ненной причиной, препятствующе размонтированию устройства, является от­ крытая консоль с текущим каталогом в зоне монтирования:

$ sudo umount - v /mnt/mymount/ umount : /mnt/mymount : dev i ce i s busy umount : /mnt/mymount : dev i ce i s busy Иногда приложение, использующее устройство, неизвестно. В этом случае для просмотра списка открытых файлов и последующего поиска в этом списке инте­ ресующей точки монmрованив вы можете воспользоваться командой 1 sof:

$ sudo 1 sof 1 grep mymount Ище т открытые файлы в разделе mymount DIR 1024 2 /mnt /mymount bash 9341 francoi s cwd 8. Вы можете видеть, что процесс bash, запущенный пользователем franc:ois с PID 934 1, препятствует размонтированию раздела mymount.

Другой причиной может является выполнение побочного размонтирования:

Выполнение побочного разнон тирования $ sudo umount - v1 /mnt/mymount/ Побочное размонтирование в данный момент размонтирует файловую систему из дерева, но перед началом очистки ожидает полного освобождения устройства.

Размонтирование съемных носителей также можно осуществлять с помощью ко­ манды ej ect, которая раэмонmрует комиакт-диск и извлекает его из привода:

$ sudo eject /dev/cdrom Размон тируе т и из влекает конпакт -диск П рове рка файловы х систем В Linux вместо обычного приложении scandisk, используемого в Windows, поиск поврежденных на физическом уровне блоков осуществляется с помощью команды badb 1 ock s, а поиск ошибок на логическом уровне - с помощью команды fsck. Ниже описывается способ осуществленИJI поиска поврежденных блоков:

Осуществляет поиск физ ически $ sudo badЫ ocks /dev/ sdal поврежденных блоков на жес ткон диске Проверка файловых систем $ sudo badЬl ocks · v /dev/ sdal Отображае т подробную информацию о сканировании жес ткого диска Check i ng Ы ocks О to Check i ng for bad b1 ocks ( read - on 1 y test ) : done Pass comp1 eted. О bad b1 ocks found.

По умолчанию команда badb 1 ock тестирует поврежденные блоки на чтение.

Кроме того, с помощью этой команды вы можете выполнять безопасное тестиро­ вание секторов на чтение и запись. Этот тест наиболее длителен, однако позволяет сохранять хранящиеся на устройстве данные. Для контроля вьmолнения команды добавьте параметр - s :

$ sudo badЬl ocks - vsn /dev/ sdal Выполняет безопасную провер КУ дисков на наличие поврежденных блоков Check i ng for bad b1 ocks i n non - destruct i ve read -wri te mode From b1 ock О to Test i ng wi th random pattern : Pass comp1 eted. О bad b1 ocks found.

Следующая команда выполняет более быстрый, однако уничтожающий данные тест чтения-записи:

ВНИМАНИЕ -------­ Эта команда уничтожит все данные на проверяемом разделе.

Проверяет диск на наличие поврежденных $ sudo badЬl ocks - vsw /dev/sdal секторов. унич тожая записа нные данные Check i ng for bad b1 ocks i n rea d - wri te mode · From Ь 1 ock О to Test i ng wi th pattern Охаа : done Readi ng and compa ri ng : done Test i ng wi th pattern Ох55 : done Read i ng and compa ri ng : done Test i ng wi th pattern Oxff : done Readi ng and compa ri ng : done Testi ng wi th pattern ОхО О : done Readi ng and compa ri ng : done Pass comp1 eted. О bad b1 ocks found.

Вы можете выполнять сразу несколько тестов на наличие поврежденных сек­ торов;

например, следующая команда может быть использована для записи ком­ цакт-дисков и одновременного вывода на экран информации о поврежденных секторах:

$ sudo badЬl ocks · vswp 2 /dev/sdal Как и mkfs, команда fsck представляет собой лишь устройство сбора данных отдельных утилит файловых систем. Чтобы проверить файловую систему ext с помощью команды fsck, просто добавьте к ней имя устройства того раздела дис­ ка, который вы хотите проверить:

$ sudo fsck /dev/sdal fsck 1. 39 ( 29 - Мау - 2006 ) 162 Гла ва 7. Админи стр и рова ние файловых систем e2fsck 1. 39 ( 29 - Мау - 2006 ) mypa rt has gone 18 days wi thout bei ng checked. check forced.

Pass 1 : Chec k i ng i nodes. Ы ocks. and s i zes Pass 2 : Check i ng d i rectory st ructure Pass 3 : Check i ng d i rectory connect i v i ty Pass 4 : Check i ng reference counts Pass 5 : Check i ng g roup summa ry i nformati on mypa rt : 1 1 / 50200 fi l es ( 9. 1% non - cont i guous ). 12002/200780 Ы ocks Вы можете использовать совместно с командой fsck и другие параметры, на­ пример - Т (скрывает номер версии fsck ) и - V (отображает более подробную инфор­ мацию о выполнении fsck в реальном времени):

Проверяет файловую систему (о тображает - ТV $ sudo fsck /dev/sdal подробную информацию. но скрывает версию ) ( / sbi n / fsck. ext3 ( 1 ) - - /dev/ sda 1 ] fsck. ext3 /dev / sd a e2fsck 1. 39 ( 29 - Мау - 2006 ) mypa rt : c l ean. 1 1 / 50200 fi l es. 12002/200780 Ы ocks Если при выполнении команды fsck произойдет какая-либо ошибка, вам будет задан вопрос, хотите ли вы ее исправить:

-ТV Отображае т вопрос. нужно ли исправля ть $ sudo fsck /dev/sdal возникшие ошибки ( / sbi n / fsck. ext3 ( 1 ) - - /mnt /mymount ] fsck. ext3 /dev / sda e2fsck 1. 39 ( 29 - Мау - 2006 ) Cou l dn ' t fi nd ext2 s uperЬl ock. t ry i ng backup Ы ocks...

Res i ze i node not v a l i d. Rec reate? у Если у вас нет достаточного опыта в работе с файловыми системами, отвечайте всегда •да•. Добавив к команде· параметра -у, этот процесс можно автоматизиро­ вать:

$ sudo fsck - ТVу /dev/sdal [ / sbi n / fsck. ext3 ( 1 ) - - /mnt /mymount ] fsck. ext3 -у /dev/sda e2fsck 1. 39 ( 29 - Мау - 2006 ) Cou l dn ' t fi nd ext2 s uperЫ ock. t ryi ng backup Ы ocks...

Res i ze i node not v a l i d. Rec reate? yes mypa rt wa s not c l ea n l y unmounted. check forced.

Pass 1 : Check i ng i nodes. Ы ocks. and s i zes Pass 2 : Check i ng d i rectory st ructure Pass 3 : Check i ng d i rectory connect i v i ty Pass 4 : Check i ng reference counts Pass 5 : Check i ng g roup s umma ry i nformati on F ree Ы ocks count wrong for g roup #О ( 3552. counted=3553 ).

F i x? yes F ree Ы ocks count wrong ( 188777. counted=18877 8 ).

F i x? yes mypa rt : ***** F I LE SYSTEM WAS MOD I F I ED ***** mypa rt : 1 1 / 50200 fi l es ( 0. 0% non - cont i guous ). 12002/ 200780 Ы ocks Проверка дисков RAID рове рка д исков RAID Технология резервных массивов данных на независимых дисках ( RAID) позволя­ ет дублировать и хранить данные на нескольких жестких дисках. Использование технологии RAID может повысить надежность вашего носителя информации.

Команда mdadm, являющаяся составной частью пакета mdadm, может использовать­ ся для проверки устройств softraid:

$ sudo mdadm ·Q /dev/mdl /dev/md 1 : 1498. 13Mi B ra i d 1 2 devi ces. О spa res.

Use mdadm - - deta i l for more det a i l.

/dev/md 1 : No md s uper Ы осk found. not a n md component.

Сообщение в последней строке свидетельствует о том, что каталог /dev/md1 не является частью массива RAID. Однако это нормально, поскольку сам каталог md является массивом данных. Аналогично, если вы с помощью команды mdadm выпол­ ните запрос к члену массива RAID, то получите примерно следующую инфор­ мацию:

$ sudo mdadm ·Q /dev/ sdbЗ /dev/ sdb3 : i s not an md a r ray /dev/ sdb3 : dev i ce 1 i n 4 dev i ce act i ve rai d6 mdO. Use mdadm - - exami ne for more detai l.

Для отображения более подробной информации добавьте параметр deta i 1 :

- $ sudo mdadm · Q · · detai l /dev/mdl /dev/md 1 :

Vers i on : 00. 90. 0 C reat i on Ti me : Fri Dec 8 16 : 32 : 12 Ra i d Level ra i dl Array Si ze : 1534080 ( 1498. 38 Mi B 1570. 90 МВ ) Dev i ce Si ze : 1534080 ( 1498. 38 Mi B 1570. 90 МВ ) Ra i d Dev i ces Tota l Dev i ces : Preferred Mi nor : Pers i stence : SuperЫ ock i s persi stent Update Ti me : Sun Jun 17 02 : 06 : 0 1 State : c l ean Acti ve Dev i ces Work i ng Dev i ces Fa i l ed Dev i ces О О Spa re Dev i ces UU I D : 49c564cc : 2d3c9a 14 : d93ce1c9 : 07 0663ca Events : 0. Mi nor Number Ma j o r Ra i dDev i ce State о о 2 act i ve sync /dev /hda act i ve sync /dev/ hdb 1 3 164 Глава 7. Администрирование файловых систем Кроме того, команду mdadm можно использовать для управления устройствами softraid. Для получения более подробной информации выполните следующую команду:

$ sudo mdadm - - manage hel p $ man mdadm ПРИМЕЧАНИЕ -------­ Если вы используете аппаратные RАID-контроллеры Зware/AMCC, являющиеся, по нашему мнению, наилучшими для приводов SATA RAID, убедитесь, что у вас установлен Зware Disk Maпager (Зdm2), доступный в формате RPM на сайте ATrpms. пet. Пакет Зdm2 включает в себя инструменты для на· блюдения и сетевые GUI.

Перед установкой пакета mdadm убедитесь, что у вас установлен именно RАI D­ диск. Во время установки mdadm программа попытается произвести настройку ваших RАID-дисков. Кроме того, программа создаст в каталоге /etc/mdadm файл mdadm. conf, с помощью которого вы сможете при необходимости удалить пакет mdadm, однако существование этого файла может стать причиной проблем совмес­ тимости с программным пакетом lvm2 package, что будет описано позже.

Поп учение ин формаци и об использовании ф ай п овой систе мы Недостаточный объем свободного дискового пространства может сказываться на производительности вашей настольной системы, а для ваших серверов это может стать потенциальной катастрофой. Для определения объема доступного в данный момент дискового пространства и уровня его использования предназначена коман­ да df, а для определения занимаемого отдельными файлами и каталогами места ­ команда du.

Команда df выводит отчет об испоJIЬзовании смонтированных файловых сис­ тем. С помощью параметра h для упрощения восприятия выводимых данных вы можете выполнять их пересчет (по умолчанию отображаемых в байтах) в мегабай­ ты (М) и гигабайты (G):

Pages:     | 1 | 2 || 4 | 5 |   ...   | 7 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.