Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Linux основные команды. Карманный справочник - Д. Дж. Еаррет

.pdf
Скачиваний:
189
Добавлен:
24.05.2014
Размер:
1.77 Mб
Скачать

top [опции\

procps

/usr/bin

stdin stdout -file --opt --help --version

Команда top позволяет следить за наиболее активными процессами, обновляя данные через определенные интервалы времени (скажем, каждую секунду). Это консольная программа, которая обновляет данные интерактивно.

$ top

116 processes: 104 sleeping, 1 running,

0 zombie, 11 stopped

CPU states: 1.1% user, 0.5% system, 0.0% nice, 4.5% idle

Mem: 523812K av, 502328K used, 21484K free, OK shrd, 160436K buff

Swap: 530104K av, OK used, 530104K free 115300K cached

PID

USER PRI

 

N1 SIZE RSS SHARE STAT

%CPU %MEM TIME

COMMAND

26265 smith 10

 

 

0

1092 1092 840 R

4.7

0.2

0:00

top

 

 

 

1root

0

0

540

540 472

S

0.0

0.1

0:07

init

 

 

 

2root

0

0

0

0

0 SW

0.0

0.0

0:00

kflushd

 

 

Когда выполняется программа top, вы можете нажимать клавиши, чтобы изменять ее поведение, например задавать скорость обновления (s), скрывать бездействующие процессы (i) или убивать процессы (к). Нажмите h, чтобы увидеть полный список, и q, чтобы выйти из программы.

 

Полезные опции

-nw

Выполнить ^обновлений, а затем завершить работу

-dw

Обновлять данные каждые Л'секунд

-pN -рм . . . Выводить процессы только с идентификаторами N, М,..., до 20 процессов

141

- с Выводить командные аргументы процессов -Ь Выводить данные в стандартный канал вывода

неинтерактивно, без выведения экранных кодов. Команда top-b-nl> out file сохраняет мгновенное состояние в файле outfile

xload XFree86-tools

/usr/bin stdin stdout -file --opt --help --version

Выполните команду xload, чтобы посмотреть на статистику загрузки системы в графическом виде в отдельном окне. Она выводит график загрузки процессора (по оси Y) во времени (ось X).

Полезные опции

-update N

 

Обновлять данные каждые Л'секунд (по

 

 

умолчанию 10)

-scale JV

 

Разделить ось Y на N секций (по умолчанию 1).

 

 

Команда xload может добавлять секции по мере

 

 

возрастания нагрузки; N - это минимальное

 

 

число видимых в данный момент секций

-hi цвет

 

Использовать заданный цвет для линий,

 

 

разделяющих секции

-1 abe 1 x

 

Вывести текст Жнад графиком (по умолчанию

 

 

будет выводиться имя вашего хоста)

-nolabel

 

He выводить текстовых надписей над графиком

-jumpscroll N

 

Когда график достигнет правой границы,

 

 

прокрутить на ^пикселей влево и продолжить

 

 

вывод графика (по умолчанию, прокрутка на

 

 

половину ширины окна)

free

procps

/usr/bin

stdin stdout -file --opt --help -version

Команда free выводит статистику использования памяти в килобайтах.

$ free

 

 

 

 

total

used

free

shared buffers

cached

142

Mem:

523812

491944

31868 0

67856

199276

 

-/+ buffers/cache:

224812 299000

Swap:

530104

0

530104

Ядро Linux резервирует максимально возможный объем для кэширования, поэтому наилучшая оценка свободного объема оперативной памяти в предыдущих выходных данных — 299000.

 

Полезные опции

- s N

Выполнять непрерывно и обновлять данные каждые

 

/Усекунд

-b

Выводить объемы памяти в байтах (-Ь) или мегабайтах

 

(-ш) -ш

-1

Добавить строку с суммарным объемом памяти внизу

Не выводить строку "buffers/cache"

 

Управление процессами

kill

Завершить процесс (или послать ему сигнал)

nice

Вызвать программу с определенным приоритетом

renice Изменить приоритет процесса во время его выполнения После того как процесс запущен, его можно остановить,

перезапустить и изменить его приоритет. Мы рассмотрели некоторые из этих операций командного процессора в разделе "Управление задачами " на странице 53. Теперь мы рассмотрим

операции изменения приоритета и завершения.

 

kill [опции] [идентификаторы/процессов]

bash

встроенная команда stdin stdout -file --opt --help --version

Команда kill отправляет сигнал процессу. Он может завершить процесс (действие по умолчанию), прервать его, приостановить, аварийно завершить и т. д. Вы должны быть владельцем процесса или суперпользователем, чтобы выполнять над ним операции.

$ kill 13243

143

Если эта команда не сработает - некоторые программы перехватывают сигнал и не реагируют на него - добавьте опцию -KILL:

$ kill -KILL 13243

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

Если вы не знаете идентификатора процесса, попробуйте использовать команду pidof:

$ /sbin/pidof emacs

или выполните команду ps и изучите ее выходные данные. Помимо программы /bin/kill в файловой системе, большинство

командных процессоров имеют встроенные команды kill, но их синтаксис и поведение отличаются. Однако, все они поддерживают следующий синтаксис:

$ kill -N PID

$ kill -NAME PID

где РГО - идентификатор процесса, N - номер сигнала, a NAME - это название сигнала без префикса "SIG" (например, используйте -HUP для того, чтобы отправить сигнал SIGHUP). Для того чтобы посмотреть на полный список сигналов, передаваемых командой kill, выполните команду kill -1, хотя ее вывод может отличаться в зависимости от того, какую команду kill вы выполняете. Для того чтобы получить описание сигналов, выполните команду man 7 signal.

nice [-приоритет] командная строка coreutils /bin stdin stdout -file - -opt --help –version

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

144

посредством задания ее приоритета. Именно для этого и предназначена команда nice. Ниже приведен пример установки приоритета 7 для сложной задачи.

$ nice -7 sort VeryLargeFile > outfile

Если вы не указываете приоритет, то будет установлен приоритет 10. Чтобы узнать, какой приоритет стандартный (т. е. приоритет, который устанавливается, если вы не выполняете команду nice), выполните команду nice без аргументов.

$ nice 0

Если вы суперпользователь, вы также можете повысить приоритет (уменьшить число):

$ nice —10

(да, здесь два минуса, что это означает: опция "минус 10"). Чтобы посмотреть на nice-значения ваших процессов, используйте команду ps и смотрите в колонку "NI".

$ ps -о pid,user,args,nice

гenice приоритет [опция] PID util-linux

 

/usr/bin

stdin stdout -file --opt --help --version

 

Тогда как команда nice может вызывать программы с заданным

приоритетом,

команда renice изменяет

приоритет

уже

запущенного

процесса.

 

 

Ниже мы увеличиваем nice-значение (уменьшаем приоритет) процесса 28734 на пять.

$ renice +5 -р 28734

Обычные пользователи могут уменьшать приоритеты (увеличивать число), а суперпользователь может и повышать приоритеты (уменьшать число). Допустимый диапазон - от -20 до +20, но избегайте использования больших отрицательных чисел, иначе вы можете повлиять на жизненно важные системные процессы.

145

Полезные опции

-р PID

Выполнить операцию для процесса с заданным

 

идентификатором (РЮ). Вы можете опустить опцию -р

 

и указать только PID (renice +5 28734)

-и имя_пользователя Выполнить операцию для всех процессов заданного пользователя

Пользователи и их окружение

Logname

Вывести ваше имя пользователя

Whoami

Вывести ваше текущее, действующее имя

 

пользователя

id

Вывести идентификатор пользователя и группы,

 

к которым принадлежит пользователь

who

Вывести подробный список пользователей,

 

работающих в данный момент в системе

users

Вывести краткий список пользователей,

 

работающих в данный момент в системе

finger

Вывести информацию о пользователях

last

Определить, когда в последний раз входил в

 

систему какой-либо пользователь

printenv

Вывести ваше окружение

Кто вы? Только система знает об этом точно. Следующий набор программ сообщит вам все о пользователях: их имена, время входа в систему и свойства их окружения.

logname

coreutils

/usr/bin

stdin stdout -file --opt --help -version

Команда logname выводит ваше имя пользователя. Она может показаться тривиальной, но очень полезна для использования в скриптах командного процессора.

$ logname smith

146

whoami

coreutils

/usr/bin

stdin stdout -file --opt —help —version

Команда whoami выводит имя текущего, действующего пользователя. Оно может отличаться от имени пользователя, под которым вы входили в систему (выходные данные команды logname), если вы затем использовали команду su. Следующий пример показывает отличие команды whoami от команды logname.

$ logname

• -

 

smith

 

 

$ whoami

 

 

smith

 

 

$ su Password:

 

#logname

 

 

smith

 

 

#whoami

 

 

root

 

 

id [опции] [имя_пользователя]

coreutils

/usr/bin

stdin stdout -file —opt --help -version

Каждый

пользователь имеет

уникальный численный

идентификатор (UID) и уникальный численный идентификатор группы (GID), в которую он входит по умолчанию. Команда id выводит эти идентификаторы с соответствующими им именами пользователя и группы.

$ id

 

uid=500(smith) gid=500(smith)

 

groups=500(smith),6(disk),490(src),501(cdwrite)

 

Полезные опции

- u

Вывести идентификатор действующего пользователя и

 

завершить работу

- g

Вывести идентификатор действующей группы и

 

завершить работу

- G

Вывести идентификаторы всех других групп, к

 

которым принадлежит пользователь

147

- n

Вывести имена (для пользователей и групп) вместо

 

численных идентификаторов. Должна использоваться в

 

комбинации с опциями -и, -д или -G. Например,

 

команда id -Gn создает такие же выходные данные, что

 

и команда groups

 

- г

Вывести реальные значения вместо действующих.

 

Должна использоваться в комбинации с опциями -u, -g

 

ИЛИ -G

 

 

who [опции] [имя файла]

coreutils

 

"/usr/bin

stdin stdout -file -opt -help -version

Команда who показывает всех вошедших в систему пользователей, по одному командному процессору пользователя на

строку.

 

 

 

 

$ who

 

 

 

 

smith

:0

Sep

6

17:09

barrett

pts/1

Sep

6

17:10

jones

pts/2

Sep

8

20:58

jones

pts/4

Sep

3

05:11

Как правило, команда who получает свои входные данные из файла /var/run/utmp. Аргумент имя_ файла может задать другой файл с данными, например, /var/log/wtmp с информацией о завершенных сессиях, или /var/log/btmp с информацией о неудачных попытках входа в систему*.

 

Полезные опции

Вывести строку заголовков

-1

Для пользователей, вошедших в систему удаленно,

 

вывести имена удаленных хостов

-n

Также вывести время простоя каждого пользователя в

 

его терминале

-T

Также указать, доступен ли для записи терминал

 

пользователя (см. информацию о команде mesg у в

 

разделе "Обмен мгновенными сообщениями" на

 

странице 221 ). В выходных данных знак "плюс"

148

 

означает "да", "минус" - "нет", а вопросительный знак

 

означает "неизвестно"

-m

Вывести информацию только о себе, то есть, о

 

пользователе связанном с текущим терминалом

-q

Вывод только имен пользователей и количества

 

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

 

и команда users, но добавляет количество

 

пользователей.

* Если ваша система сконфигурирована для журналирования этих завершенных сессий и неудачных попыток входа в систему.

users [имя файла] coreutils

/usr/bin stdin stdout -file -opt --help -version

Команда users выводит сжатый список пользователей, имеющих открытые рабочие сессии. Если пользователь работает в нескольких командных процессорах (терминалах), то его имя в списке появится несколько раз.

$ users

barrett jones smith smith smith

Аналогично команде who, команда users no умолчанию получает входные данные из файла /var/ log/utmp, но может читать их и из другого указанного файла.

finger [опции\ [пользователь[@хост\]

finger

/usr/bin

stdin stdout -file —opt -help -version

Команда finger выводит информацию о пользователях в сжатом

формате:

 

 

 

 

 

 

$ finger

 

 

 

 

 

Login

Name Tty

Idle Login Time

 

smith

Sandy Smith

:0

Sep 6 17:09

 

barrett Daniel Barrett :pts/l

24

Sep 6 17:10

 

jones

Jill Jones

:pts/2

Sep

8 20:58

 

или подробно:

 

 

 

 

$ finger

smith

 

 

 

 

149

.

Login:

smith

Name:

Sandy Smith

 

Directory:

/home/smith

Shell: /bin/bash On

since Sat

Sep

6 17:09

(EDT)

on :0 Last login Mon Sep

8 21:07

(EDT)

on pts/6

from localhost

 

 

No mail. Project:

Enhance world peace Plan:

Mistrust first impulses; they are always right.

В качестве аргумента пользователя может быть имя локального или удаленного пользователя в формате пользователь@хост. Удаленные хосты отвечают на запросы команды finger, только если они сконфигурированы для этого.

 

Полезные опции

-1

Вывести в подробном формате

- s

Вывести в сжатом формате

Не выводить разделы Project и Plan, которые обычно

 

читаются из пользовательских файлов -/.projects -/.plan

 

соответственно

 

last [опции] [пользователи] {терминалы] SysVinit

 

/usr/bin

stdin stdout -file --opt --help -version

Команда last выводит историю входа в систему в обратном хронологическом порядке.

$ last

barrett pts/3 localhost Mon Sep 8 21: 07 - 21:08 (00:01)

smith pts/6 :0

Mon Sep 8 20:

25 - 20:56 (00:31)

 

barrett pts/4

myhost

Sun Sep 7 22:

19 still logged

in

 

150