Уильям Шоттс - Командная строка Linux. Полное руководство
- Название:Командная строка Linux. Полное руководство
- Автор:
- Жанр:
- Издательство:Питер
- Год:2016
- ISBN:978-5-496-02303-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Уильям Шоттс - Командная строка Linux. Полное руководство краткое содержание
Книга Уильяма Шоттса "Командная строка Linux: Полное руководство" представляет обширный обзор «жизни» в командной строке Linux. В отличие от других книг, посвященных одной программе, такой как командный интерпретатор bash, в этой книге автор попытается рассказать, как поладить с интерфейсом командной строки в более широком аспекте. Как он работает? Что можно сделать с его помощью? Как лучше его использовать? Эта книга не об администрировании системы Linux. Эта книга исключительно о Linux.
В книге материал излагается в тщательно выверенной последовательности, как в школе, где учитель руководит вами и направляет вас по правильному пути. Многие авторы грешат тем, что подают материал в «систематическом» порядке, имеющем определенный смысл для писателя, но способном вызывать путаницу у начинающих пользователей. Цель данной книги — познакомить вас с идеологией Unix, которая отличается от идеологии Windows.
Командная строка Linux. Полное руководство - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Таблица 21.5. Компоненты спецификаторов преобразований в команде printf
Спецификатор |
Описание |
флаги |
Существует пять разных флагов: # использовать альтернативный формат вывода — действует по-разному, в зависимости от типа данных. Для преобразования o (восьмеричное число) в вывод добавляется префикс 0 (ноль). Для преобразований x и X (шестнадцатеричное число) в вывод добавляется префикс 0x или 0X соответственно. 0 (ноль) — добавляет нули в начало вывода. Это означает, что поле будет дополнено ведущими нулями, например: 000380. - (дефис) — выравнивание по левому краю. По умолчанию printf выполняет выравнивание по правому краю. (пробел) — добавляет ведущий пробел перед положительными числами. + (знак «плюс») — выводит знак перед положительными числами. По умолчанию printf выводит знаки только перед отрицательными числами |
ширина |
Число, определяющее минимальную ширину поля вывода в символах |
.точность |
Определяет число знаков после десятичной запятой при выводе вещественных чисел. Для строковых значений точность определяет число выводимых символов |
В табл. 21.6 перечислены некоторые примеры применения разных форматов.
Таблица 21.6. Примеры применения спецификаторов преобразований команды printf
Аргумент |
Формат |
Результат |
Примечания |
380 |
"%d" |
380 |
Простое форматирование целых чисел |
380 |
"%#x" |
0x17c |
Форматирование целочисленных значений в шестнадцатеричное представление с использованием альтернативного форматирования |
380 |
"%05d" |
00380 |
Форматирование целочисленных значений с ведущими нулями и минимальным размером поля, равным пяти символам |
380 |
"%05.5f" |
380.00000 |
Форматирование вещественных значений с ведущими нулями и 5 знаками после запятой. Поскольку указанная минимальная ширина поля (5) меньше фактической ширины отформатированного числа, ведущие нули не были добавлены |
380 |
"%010.5f" |
0380.00000 |
Ширина поля вывода увеличена до 10, вследствие чего появился ведущий нуль |
380 |
"%+d" |
+380 |
Флаг + требует выводить знак у положительных чисел |
380 |
"%-d" |
380 |
Флаг - обеспечивает форматирование с выравниванием по левому краю |
abcdefghijk |
"%5s" |
abcdefghijk |
Форматирование строки в поле с указанной минимальной шириной |
abcdefghijk |
"%.5s" |
фисву |
Применение компонента точности к строке привело к ее усечению |
И еще раз: команда printf в основном используется в сценариях, где применяется для форматирования табличных данных, а не как самостоятельный инструмент командной строки. Тем не менее мы можем использовать ее для решения различных задач форматирования. Во-первых, попробуем вывести несколько полей, разделив их символами табуляции:
[me@linuxbox ~]$ printf "%s\t%s\t%s\n" str1 str2 str3
str1 str2 str3
Добавив \t (экранированную последовательность, соответствующую символу табуляции), мы достигли желаемого эффекта. Затем попробуем вывести несколько чисел в форматированном виде:
[me@linuxbox ~]$ printf "Line: %05d %15.3f Result: %+15d\n" 1071 3.14156295 32589
Line: 01071 3.142 Result: +32589
Здесь демонстрируется действие компонента, определяющего минимальную ширину поля. А можно ли подобным образом отформатировать небольшую веб-страницу?
[me@linuxbox ~]$ printf "\n\t
\n\t\t %s \n\t\n\t
\n\t\t%s
\n\t\n\n" "Page Title" "Page Content"Page Content
Системы форматирования документов
До сих пор мы исследовали простые инструменты форматирования текста. Они хорошо подходят для решения небольших и простых задач, но как быть с более сложными заданиями? Одна из причин большой популярности операционной системы Unix среди технических специалистов и научных работников (кроме мощной поддержки многозадачности и многопользовательского окружения для выполнения любых работ, связанных с разработкой программного обеспечения) состоит в наличии инструментов, которые можно использовать для создания самых разных документов, таких как научные и академические публикации. Фактически, как описывается в документации GNU, средства подготовки документов положительно сказались на разработке Unix:
Первая версия UNIX была создана на машине PDP-7, простаивавшей в Bell Labs. В 1971-м разработчики захотели заполучить PDP-11 для дальнейшей работы над операционной системой. Чтобы оправдать затраты на эту систему, они внесли предложение о реализации системы форматирования документов для патентного бюро в AT&T. Эта первая программа форматирования являлась переделкой программы roff Макиллроя (McIllroy), которую написал Д.Ф. Оссанна (J. F. Ossanna).
Семейство программ roff и T EX
В области систем форматирования документов доминируют два основных семейства программ: уходящие корнями в оригинальную программу roff, включая nroff и troff, и основанные на системе верстки Дональда Кнута T EX (произносится как «тек»). И да, буква «E» в середине имени действительно смещена вниз.
Имя roff произошло от словосочетания «run off» (напечатать), как во фразе: «Я напечатал копию для вас». Программа nroff используется для форматирования документов перед выводом на устройства, использующие моноширинные шрифты, такие как алфавитно-цифровые терминалы и принтеры, действующие подобно пишущим машинкам. На момент появления программы такие устройства составляли подавляющее большинство устройств вывода, подключаемых к компьютерам. Позднее появилась программа troff, форматирующая документы для вывода на наборные устройства, используемые для производства «готовых к тиражированию» макетов. Большинство современных принтеров способны имитировать вывод таких наборных устройств. Семейство roff также включает ряд других программ для подготовки фрагментов документов. К их числу относятся eqn (для форматирования математических формул) и tbl (для форматирования таблиц).
Система T EX (в версии, готовой к эксплуатации) впервые появилась в 1989 году и, до определенной степени, заменила troff как инструмент для получения документов типографского качества. Мы не будем рассматривать систему T EX здесь, во-первых, из-за ее сложности (существуют целые книги, посвященные ей) и, во-вторых, из-за того, что в большинстве современных систем Linux она не устанавливается по умолчанию.
ПРИМЕЧАНИЕ
Если у вас появится желание установить TEX, обратите внимание на пакет texlive, присутствующий в репозиториях большинства дистрибутивов, а также на редактор графического содержимого LYX.
groff — система форматирования документов
groff — это пакет программ с GNU-реализацией troff. Он также включает сценарий, имитирующий работу nroff, и остальные программы семейства roff.
Читать дальшеИнтервал:
Закладка: