Linux основные команды. Карманный справочник - Д. Дж. Еаррет
.pdftop [опции\ |
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