Уильям Шоттс - Командная строка Linux. Полное руководство
- Название:Командная строка Linux. Полное руководство
- Автор:
- Жанр:
- Издательство:Питер
- Год:2016
- ISBN:978-5-496-02303-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Уильям Шоттс - Командная строка Linux. Полное руководство краткое содержание
Книга Уильяма Шоттса "Командная строка Linux: Полное руководство" представляет обширный обзор «жизни» в командной строке Linux. В отличие от других книг, посвященных одной программе, такой как командный интерпретатор bash, в этой книге автор попытается рассказать, как поладить с интерфейсом командной строки в более широком аспекте. Как он работает? Что можно сделать с его помощью? Как лучше его использовать? Эта книга не об администрировании системы Linux. Эта книга исключительно о Linux.
В книге материал излагается в тщательно выверенной последовательности, как в школе, где учитель руководит вами и направляет вас по правильному пути. Многие авторы грешат тем, что подают материал в «систематическом» порядке, имеющем определенный смысл для писателя, но способном вызывать путаницу у начинающих пользователей. Цель данной книги — познакомить вас с идеологией Unix, которая отличается от идеологии Windows.
Командная строка Linux. Полное руководство - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
[me@linuxbox ~]$ xlogo
После ввода команды на экране должно появиться небольшое окно с логотипом. В некоторых системах xlogo может выводить предупреждающее сообщение, но его можно смело игнорировать.
ПРИМЕЧАНИЕ
Если программа xlogo отсутствует в системе, попробуйте вместо нее использовать gedit или kwrite.
Чтобы убедиться, что xlogo работает, попробуйте изменить размеры ее окна. Если после изменения размеров содержимое окна перерисовывается, значит, программа работает.
Заметили ли вы, что командная оболочка не вывела приглашения к вводу после выполнения команды? Это объясняется тем, что командная оболочка ждет, пока программа завершится. То же самое происходило со всеми программами, которые мы запускали до сих пор. Если закрыть окно xlogo, оболочка выведет приглашение к вводу.
Прерывание процесса
Давайте понаблюдаем, что происходит после запуска xlogo. Сначала введите команду xlogo и убедитесь, что программа работает. Затем вернитесь в окно терминала и нажмите комбинацию CTRL+C.
[me@linuxbox ~]$ xlogo
[me@linuxbox ~]$
Комбинация CTRL+C в терминале прерывает выполнение программы. Фактически мы вежливо попросили программу завершиться. После нажатия CTRL+C окно xlogo закроется и командная оболочка выведет приглашение к вводу.
Таким способом можно прервать выполнение многих (но не всех) программ командной строки.
Перевод процессов в фоновый режим
Представьте, что нам потребовалось вернуться в командную оболочку, не прерывая выполнения программы xlogo. Мы можем сделать это, переведя программу в фоновый режим работы. Считайте, что терминал имеет передний план (то, что видно на поверхности, например приглашение к вводу) и задний план (фон, то, что скрыто под поверхностью). Чтобы запустить программу сразу в фоновом режиме, нужно добавить в конец команды символ амперсанда (&):
[me@linuxbox ~]$ xlogo &
[1] 28236
[me@linuxbox ~]$
После ввода такой команды на экране появится окно xlogo, а командная оболочка вернется в приглашение к вводу, но перед этим выведет таинственные числа. Это сообщение является частью механизма управления заданиями (job control). Таким способом командная оболочка сообщает, что мы запустили задание с номером 1 ([1]) и оно получило идентификатор процесса PID 28236. Если теперь выполнить команду ps, можно увидеть этот процесс:
[me@linuxbox ~]$ ps
PID TTY TIME CMD
10603 pts/1 00:00:00 bash
28236 pts/1 00:00:00 xlogo
28239 pts/1 00:00:00 ps
Механизм управления заданиями также дает возможность вывести список заданий, запущенных в терминале. Этот список можно получить командой jobs:
[me@linuxbox ~]$ jobs
[1]+ Running xlogo &
Результаты показывают, что у нас имеется одно выполняющееся задание с номером 1, которое было запущено командой xlogo &.
Возврат процесса на передний план
Процесс в фоновом режиме не получает ввод с клавиатуры, в том числе не видит попыток прервать его комбинацией CTRL+C. Вернуть процесс на передний план можно командой fg, как в следующем примере:
[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.
Читать дальшеИнтервал:
Закладка: