Чтение онлайн

на главную - закладки

Жанры

Командная строка Linux
Шрифт:

– d

Вывести имя системного принтера по умолчанию

– p [принтер...]

Вывести состояние указанного принтера. Если принтер не указан, выводится информация обо всех принтерах

– r

Вывести состояние сервера печати

– s

Вывести сводную информацию о состоянии

– t

Вывести полный отчет о состоянии

lpq — вывод информации о состоянии очереди печати

Программа lpq используется для получения информации о состоянии очереди печати. С ее помощью можно увидеть состояние очереди и список заданий

в ней. Ниже приводится пример вывода информации о состоянии пустой очереди для системного принтера по умолчанию с именем printer:

[me@linuxbox ~]$ lpq

printer is ready

no entries

Если принтер не указан (с помощью параметра -P), выводится информация об очереди для системного принтера по умолчанию. Если сформировать задание для печати и затем вывести информацию о состоянии очереди, это задание появится в списке:

[me@linuxbox ~]$ ls *.txt | pr -3 | lp

request id is printer-603 (1 file(s))

[me@linuxbox ~]$ lpq

printer is ready and printing

Rank Owner Job File(s) Total Size

active me 603 (stdin) 1024 bytes

lprm и cancel — отмена заданий печати

В составе CUPS имеется две программы для завершения заданий печати и удаления их из очереди. Одна программа — в стиле Berkeley (lprm), а другая — в стиле System V (cancel). Они несколько отличаются поддерживаемыми параметрами, но, по сути, выполняют одну и ту же операцию. Если использовать пример с заданием печати, рассматриваемый выше, мы могли бы остановить выполнение задания и удалить его:

[me@linuxbox ~]$ cancel 603

[me@linuxbox ~]$ lpq

printer is ready

no entries

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

23. Компиляция программ

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

Но зачем может понадобиться компилировать исходный код? Могу назвать две основные причины:

• Доступность. Несмотря на большое число предварительно скомпилированных пакетов в репозиториях дистрибутивов некоторые дистрибутивы могут включать не все необходимые приложения. В этом случае остается только один способ установить

требуемую программу: скомпилировать ее из исходных кодов.

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

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

В этой главе будет представлена одна новая команда:

• make — утилита сопровождения программ.

Что такое компиляция?

Выражаясь простым языком, компиляция — это процесс трансляции исходного кода (текста программы, описывающего ее действия и написанного программистом) на низкоуровневый язык, понятный процессору компьютера.

Процессор компьютера (Computer Processor Unit, CPU) работает на очень низком уровне, выполняя программы на языке, который называют машинным. Это числовой код, описывающий элементарные операции, такие как «сложить эти два байта», «сослаться на эту ячейку в памяти» или «скопировать этот байт». Каждая из этих инструкций выражается в двоичной форме (нулями и единицами). Самые первые программы писались на числовом коде, поэтому программисты, писавшие такой код, как поговаривают, много курили, пили кофе литрами и носили очки с толстенными линзами.

Эта проблема была решена с появлением языка ассемблера, который заменил числовые коды (слегка) более простыми символическими мнемониками, такими как CPY (для обозначения операции копирования) и MOV (для обозначения операции перемещения). Исходный код на языке ассемблера преобразовывался в машинный код программой, называющейся ассемблером. Язык ассемблера используется и в наши дни для решения специальных задач программирования, таких как разработка драйверов устройств или встраиваемых систем.

Затем появились высокоуровневые языки программирования. Они называются так потому, что позволяют программисту меньше думать об особенностях работы процессора и больше — о решении задачи, стоящей перед ним. К числу этих первых языков (разработанных в течение 1950-х) относятся: FORTRAN (создавался для решения научных и технических задач) и СOBOL (для решения экономических задач). Оба продолжают ограниченно использоваться и по сию пору.

Несмотря на большое число популярных языков программирования, господствующие позиции занимают только два из них. Многие современные системы и программы написаны на C или на C++. В примерах ниже мы будем компилировать программы на языке C.

Поделиться:
Популярные книги

Кровь Василиска

Тайниковский
1. Кровь Василиска
Фантастика:
фэнтези
попаданцы
аниме
4.25
рейтинг книги
Кровь Василиска

Венецианский купец

Распопов Дмитрий Викторович
1. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
7.31
рейтинг книги
Венецианский купец

Сопряжение 9

Астахов Евгений Евгеньевич
9. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
технофэнтези
рпг
5.00
рейтинг книги
Сопряжение 9

На три фронта

Бредвик Алекс
3. Иной
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
На три фронта

Авиатор: назад в СССР 11

Дорин Михаил
11. Покоряя небо
Фантастика:
альтернативная история
5.00
рейтинг книги
Авиатор: назад в СССР 11

Санек

Седой Василий
1. Санек
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Санек

Лорд Системы 8

Токсик Саша
8. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 8

Мерзавец

Шагаева Наталья
3. Братья Майоровы
Любовные романы:
современные любовные романы
эро литература
короткие любовные романы
5.00
рейтинг книги
Мерзавец

Игра топа. Между двух огней

Вяч Павел
2. Игра топа
Фантастика:
фэнтези
7.57
рейтинг книги
Игра топа. Между двух огней

Провинциал. Книга 2

Лопарев Игорь Викторович
2. Провинциал
Фантастика:
космическая фантастика
рпг
аниме
5.00
рейтинг книги
Провинциал. Книга 2

Идущий в тени 6

Амврелий Марк
6. Идущий в тени
Фантастика:
фэнтези
рпг
5.57
рейтинг книги
Идущий в тени 6

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Крестоносец

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Крестоносец

Идеальный мир для Лекаря 10

Сапфир Олег
10. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 10