» » » Уильям Шоттс - Командная строка Linux. Полное руководство


Авторские права

Уильям Шоттс - Командная строка Linux. Полное руководство

Здесь можно купить и скачать "Уильям Шоттс - Командная строка Linux. Полное руководство" в формате fb2, epub, txt, doc, pdf. Жанр: Компьютерная литература, издательство Питер, год 2016. Так же Вы можете читать ознакомительный отрывок из книги на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Уильям Шоттс - Командная строка Linux. Полное руководство
Рейтинг:
Название:
Командная строка Linux. Полное руководство
Издательство:
неизвестно
Год:
2016
ISBN:
978-5-496-02303-0
Вы автор?
Книга распространяется на условиях партнёрской программы.
Все авторские права соблюдены. Напишите нам, если Вы не согласны.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Командная строка Linux. Полное руководство"

Описание и краткое содержание "Командная строка Linux. Полное руководство" читать бесплатно онлайн.



Книга Уильяма Шоттса "Командная строка Linux: Полное руководство" представляет обширный обзор «жизни» в командной строке Linux. В отличие от других книг, посвященных одной программе, такой как командный интерпретатор bash, в этой книге автор попытается рассказать, как поладить с интерфейсом командной строки в более широком аспекте. Как он работает? Что можно сделать с его помощью? Как лучше его использовать? Эта книга не об администрировании системы Linux. Эта книга исключительно о Linux.

В книге материал излагается в тщательно выверенной последовательности, как в школе, где учитель руководит вами и направляет вас по правильному пути. Многие авторы грешат тем, что подают материал в «систематическом» порядке, имеющем определенный смысл для писателя, но способном вызывать путаницу у начинающих пользователей. Цель данной книги — познакомить вас с идеологией Unix, которая отличается от идеологии Windows.






[me@linuxbox ~]$ jobs

[1]+ Running xlogo &

[me@linuxbox ~]$ fg %1

xlogo

За командой fg должен следовать знак процента и номер задания (эта комбинация называется спецификатором задания, или jobspec). Если имеется только одно фоновое задание, спецификатор можно опустить. Теперь завершим xlogo вводом CTRL+C.

Приостановка процесса


Иногда необходимо приостановить процесс на время, не завершая его. Это часто делается с целью перевести процесс переднего плана в фоновый режим. Чтобы приостановить процесс переднего плана, используйте комбинацию CTRL+Z. Давайте попробуем. В командной строке введите команду xlogo, нажмите ENTER, а затем комбинацию CTRL+Z:

[me@linuxbox ~]$ xlogo

[1]+ Stopped xlogo

[me@linuxbox ~]$

После приостановки xlogo убедимся, что программа действительно приостановилась, для этого попытаемся изменить размер окна xlogo. Увы, программа никак не реагирует на наши действия. Далее можно или вернуть программу на передний план командой fg, или перевести ее в фоновый режим командой bg:

[me@linuxbox ~]$ bg %1

[1]+ xlogo &

[me@linuxbox ~]$

Так же как в случае с командой fg, спецификатор задания можно опустить, если имеется только одно задание.

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

Зачем может понадобиться запускать программу с графическим интерфейсом из командной строки? Тому есть две причины. Во-первых, необходимая программа может отсутствовать в меню программ окружения рабочего стола (как, например, xlogo).

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

Сигналы


Команда kill используется для «убийства» (kill), то есть для завершения процессов. Она позволяет принудительно завершить выполнение вышедшей из-под контроля программы, отвергающей любые другие попытки закрыть ее. Например:

[me@linuxbox ~]$ xlogo &

[1] 28401

[me@linuxbox ~]$ kill 28401

[1]+ Terminated xlogo

В этом случае сначала выполняется запуск программы xlogo в фоновом режиме. В ответ командная оболочка выводит номер задания и идентификатор фонового процесса (PID). Далее вызывается команда kill, которой передается PID процесса, требующего завершения. Процесс можно также идентифицировать, указав спецификатор задания (например, %1) вместо PID.

Хотя все выглядит достаточно просто, в действительности команда kill не просто «убивает» (kill) процессы — она посылает им сигналы. Сигналы — один из нескольких способов, которыми операционная система общается с программами. Мы уже видели сигналы в действии на примере использования комбинаций клавиш CTRL+C и CTRL+Z. Когда терминал принимает одну из этих комбинаций, он посылает сигнал программе на переднем плане. В случае нажатия CTRL+C программе посылается сигнал INT (Interrupt — прервать); в случае нажатия CTRL+Z посылается сигнал TSTP (Terminal Stop — сигнал «стоп» с клавиатуры). Программы в свою очередь, принимают сигналы и могут реагировать на них. Эта возможность позволяет программе выполнить некоторые операции, например сохранить промежуточные результаты, при получении сигнала на завершение.

Посылка сигналов процессам командой kill


Наиболее типичный синтаксис команды kill имеет следующий вид:

kill [-сигнал] PID...

Если сигнал явно не указан в команде, по умолчанию посылается сигнал TERM (terminate — завершить). Команда kill чаще всего используется для посылки сигналов, перечисленных в табл. 10.4.

Таблица 10.4. Часто используемые сигналы

Номер

Имя

Значение

1

HUP

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

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

2

INT

Прервать. Выполняет ту же функцию, что и нажатие комбинации CTRL+C в терминале. Обычно приводит к завершению программы

9

KILL

Уничтожить. Это специальный сигнал. В большинстве случаев программы могут сами решать, как реагировать на сигналы, вплоть до полного их игнорирования, но сигнал KILL в действительности никогда не передается целевой программе. Вместо этого ядро немедленно завершает указанный процесс. Когда процесс завершается таким способом, он не имеет возможности «прибрать за собой» или сохранить результаты своей работы. По этой причине сигнал KILL следует использовать только как крайнее средство, когда другие сигналы на завершение программы не приводят к желаемому результату

15

TERM

Завершить. Это сигнал по умолчанию, посылаемый командой kill. Если программа достаточно «живая», чтобы принять этот сигнал, она завершится

18

CONT

Продолжить. Этот сигнал восстанавливает нормальную работу процесса после сигнала STOP

19

STOP

Приостановить. Этот сигнал заставляет процесс приостановиться, не завершаясь. Подобно сигналу KILL, он не передается целевому процессу и потому не может быть проигнорирован им


Поэкспериментируем с командой kill:

[me@linuxbox ~]$ xlogo &

[1] 13546

[me@linuxbox ~]$ kill -1 13546

[1]+ Hangup xlogo

Здесь мы запустили программу xlogo в фоновом режиме и затем с помощью коман­ды kill послали ей сигнал HUP. Программа xlogo завершилась, и командная оболочка сообщила, что фоновый процесс принял сигнал разрыва связи. Иногда необходимо нажать клавишу ENTER пару раз, чтобы увидеть сообщение. Обратите внимание, что сигнал можно указать по номеру или по имени, включая имена сигналов, начинающиеся с префикса SIG:

[me@linuxbox ~]$ xlogo &

[1] 13601

[me@linuxbox ~]$ kill -INT 13601

[1]+ Interrupt xlogo

[me@linuxbox ~]$ xlogo &

[1] 13608

[me@linuxbox ~]$ kill -SIGINT 13608

[1]+ Interrupt xlogo

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

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

Помимо сигналов, наиболее часто используемых с командой kill и перечисленных в табл. 10.4, система часто использует другие сигналы, перечисленные в табл. 10.5.

Таблица 10.5. Другие часто используемые сигналы

Номер

Имя

Значение

3

QUIT

Выйти

11

SEGV

Ошибка сегментации. Этот сигнал посылается программе, предпринявшей попытку недопустимого обращения к памяти, то есть попытку выполнить запись в память, доступ к которой запрещен

20

TSTP

Сигнал «стоп» с клавиатуры. Этот сигнал посылается терминалом после нажатия комбинации CTRL+Z. В отличие от сигнала STOP, TSTP передается программе, и программа может решить игнорировать его

28

WINCH

Изменение окна. Этот сигнал посылается системой при изменении размеров окна терминала. Некоторые программы, такие как top и less, реагируют на этот сигнал, обновляя свой вывод в соответствии с новыми размерами окна терминала


Любопытные пользователи могут получить полный список сигналов, выполнив следующую команду:

[me@linuxbox ~]$ kill -l

Посылка сигналов нескольким процессам с помощью killall


Кроме того, существует возможность с помощью команды killall послать сигнал сразу нескольким процессам, соответствующим указанной программе или имени пользователя. Она имеет следующий синтаксис:

killall [-u пользователь] [-сигнал] имя...

Для демонстрации запустим пару экземпляров программы xlogo и затем завершим их:

[me@linuxbox ~]$ xlogo &

[1] 18801

[me@linuxbox ~]$ xlogo &

[2] 18802

[me@linuxbox ~]$ killall xlogo

[1]- Terminated xlogo

[2]+ Terminated xlogo

Помните: так же как при использовании команды kill, вы должны обладать привилегиями суперпользователя, чтобы посылать сигналы процессам, которыми не владеете.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Уильям Шоттс

Уильям Шоттс - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Уильям Шоттс - Командная строка Linux. Полное руководство"

Отзывы читателей о книге "Командная строка Linux. Полное руководство", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.