Как использовать команду ps для мониторинга процессов Linux

Иногда возникает необходимость несколько раз выполнить одну и ту же команду из командной строки в Linux.

Запуск команды при возвращении первой командой нулевого значения

Для объединения двух команд таким образом, что вторая команда будет выполняться, только если первая возвратила нулевое значение используется оператор управления &&. В этом случае вторая команда запускается после успешного выполнения первой и не запускается при отрицательном результате первой:

~$ cd ~/src && tar xzvf ~/download/brasero/

В этом примере содержимое архива извлекается в каталог ~/src в том случае, если он существует, в противном случае команда tar не будет запущена.

Список ключей для команды ls.

Для повседневной работы, одни из самых используемых ключей для команды ls:

  • -l — вывод подробной информации о содержимом каталога в виде списка;
  • -a (—all) — вывод информации о всех имеющихся объектах явных и скрытых;
  • -A (—allmost-all) — вывод информации о всех имеющихся явных и скрытых объектах (за исключением объектов «.» и «..»);
  • -d (—directory) — вывод информации о директории без вывода его содержимого;
  • -F — к объектам являющимся каталогами добавит в конце символ слеш «/», к объектам являющимися исполняемыми файлами добавляется «*», к объектам являющимися символьными ссылками — «@»;
  • -r (—reverse) — данные ключи меняют сортировку на обратную;
  • -i — отображение номера индексных дескрипторов объектов;
  • -S — сортировка объектов по размеру от большого к меньшему;
  • -Sr — сортировка объектов по размеру от меньшего;
  • -t — сортировка объектов по времени модификации файлов;
  • -R (—recursive) — вывод информации об имеющихся объектах в том числе и объектах во вложенных каталогах.

Способы работы с командой ls и ее ключи, упоминаемые в статье это далеко не весь список. Если вы желаете использовать всю мощь этой на первый взгляд простой команды, то как уже упоминалось ранее, более подробную информацию можно получить при вызове встроенного мануала $ man ls .

ОПИСАНИЕ

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

Если консоль работает в режиме UTF-8, то входящие байты сначала организуются в 16-битовый Юникод. В ином случае каждый байт преобразуется согласно текущей таблице перекодировки (которая переводит данные в Юникод). Смотри раздел Наборы символов ниже).

Обычно значения Юникода преобразуются в индекс шрифта, который хранится в видеопамяти таким образом, что соответствующий образ (обнаруженный в видео-ПЗУ) появляется на экране. Заметим, что работа с Юникодом (и текущими аппаратными средствами компьютеров) позволяет одновременно использовать только 512 различных образов.

Если текущим значением Юникода является управляющий символ или если в данный момент обрабатывается экранирующая последовательность, значение будет обрабатываться особым образом. Вместо того, чтобы значение было преобразовало в шрифт и отобразилось как образ, оно приведёт к выполнению определённого действия (например, перемещение курсора) или другой функции управления. Смотрите ниже раздел Управление консолью Linux.

Некорректно явно указывать в программах аппаратные последовательности управление терминалом. Linux поддерживает работу с базой возможностей терминала terminfo(5). Вместо того, чтобы вводить управляющие последовательности вручную, вы, наверняка, захотите использовать для этой работы библиотеку, использующую terminfo, или другие утилиты, такие как ncurses(3), tput(1) или reset(1).

Читайте также:  Настройка рабочего стола в Windows 10, делаем ее своими руками

Клавишами вверх/вниз

Суть настройки сводится к тому, чтобы не вводить полностью команды, которые ранее набирались. Например, вы вводите 2-3 первых символа команды и нажимаете клавишу вверх — система выводит полную команду, ранее выполненную и начинающуюся с этих 2-3 символов.

Для настройки такого автозаполнения, открываем на редактирование следующий файл:

vi /etc/inputrc

И добавляем в него следуюшие строки:

set show-all-if-ambiguous On "\e[A": history-search-backward "\e[B": history-search-forward

Чтобы автозавершение начало работать выйдите из консоли и подключитесь к ней снова.

Повторить Команду Несколько Раз в Linux

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

for n in {1..5}; do <КОМАНДА>; done

Давайте поможем Барту Симпсону со школьной доской:

$ for n in {1..5}; do echo «Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ»; done Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ

Дельный Cовет: Выполняйте команды на удаленном Linux сервере через SSH и получайте результат локально! Читать далее →

Если вам необходимо часто использовать такую конструкцию, тогда не помешает создать соответствующую Bash функцию (добавьте в ~/.bashrc):

function run() { number=$1 shift for n in $(seq $number); do [email protected] done }

Использование:

$ run 5 <КОМАНДА>

Дельный Cовет: Каждый Linux администратор обязан знать как построчно прочитать файл с помощью Bash цикла WHILE! Читать далее →

Читайте также:  Почему программа не отвечает, как устранить зависание?

Пример:

$ run 5 echo «Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ» Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ

Как выключить процесс по идентификатору процесса

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

Так или иначе, мы можем определить процессы, которые работают. Зная их идентификатор процесса, мы можем (если нужно) остановить любой из этих процессов с помощью команды kill. Если бы мы хотели убить процесс 898, мы бы использовали этот формат:

sudo kill 898

Если все идёт хорошо, процесс молча завершается.