Команда who linux

Основное

Пользователь — это любой кто пользуется компьютером.

Под каждого пользователя, создается свой каталог, пользователю назначается командная оболочка (командный интерпретатор, используемый в операционных системах семейства UNIX). Например: /bin/bash, /bin/zsh, /bin/sh и другие.

Каждому пользователю назначается идентификационный номер (User ID). Сокращенно номер обозначается как UID, является уникальным идентификатором пользователя. Операционная система отслеживает пользователя именно по UID, а не по их имени.

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

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

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

Каждой группе назначается идентификационный номер (group ID). Сокращённо GID, является уникальный идентификатором группы. Принадлежность пользователя к группе устанавливается администратором.

Получите динамический просмотр с верхним

Результатом ps является снимок экрана. Не обновляется. Чтобы получить обновленное представление о процессах, используйте команду top. Он обеспечивает динамический просмотр процессов, запущенных на вашем компьютере. Дисплей состоит из двух частей. В верхней части экрана есть панель мониторинга, состоящая из строк текста, и таблица в нижней части экрана, состоящая из столбцов.

Начните с этой команды:

top

Столбцы содержат информацию о процессах:

PID: ID процессаПОЛЬЗОВАТЕЛЬ: Имя владельца процесса.PR: приоритет процессаН.И .: Хорошая ценность процессаVIRT: виртуальная память, используемая процессом.RES: резидентная память, используемая процессомSHR: общая память, используемая процессомСУБЪЕКТ: Статус процесса. См. Список значений, которые может принимать это поле ниже.% CPU: доля процессорного времени, использованная процессом с момента последнего обновления.% MEM: доля используемой физической памятиВРЕМЯ +: общее время процессора, используемое задачей в сотых долях секунды.КОМАНДА: имя команды или командная строка (имя и параметры командной строки). Если столбец команд не виден, нажмите клавишу «Стрелка вправо».

Статус процесса может быть одним из:

D: Непрерывный сонR: БегS: спящийT: отслежено (остановлено)Z: Зомби

Нажмите клавишу «Q», чтобы выйти сверху.

Команды Linux для управления процессами

25. kill / xkill / pkill / killall

Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill — достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.

26. ps / pgrep

Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах. По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах. Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор. Подробнее о команде ps описано тут.

27. top / htop

Обе команды похожи, обе отображают процессы и могут быть использованы как консольные системные мониторы. Я рекомендую установить htop, если в вашем дистрибутиве он не поставляется по умолчанию, так как это улучшенная версия top. Вы сможете не только просматривать, но и контролировать процессы через его интерактивный интерфейс.

28. time

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

Форматы времени и даты

Вы можете использовать время, а также дату с параметрами -s и -t.

Различные форматы времени, которые можно использовать с последними параметрами, использующими дату и время (предположительно):

ГГГГММДДччммссГГГГ-ММ-ДД чч: мм: ссГГГГ-ММ-ДД чч: мм — секунды установлены на 00ГГГГ-ММ-ДД — время установлено на 00:00:00чч: мм: сс — дата установлена ​​сегоднячч: мм — дата будет установлена ​​на сегодняшний день, секунды на 00в настоящее времявчера — время установлено на 00:00:00сегодня — время установлено на 00:00:00завтра — время установлено на 00:00:00+ 5мин-5 дней

Почему «якобы»?

Второй и третий форматы в списке не работали во время исследования для этой статьи. Эти команды были протестированы в дистрибутивах Ubuntu, Fedora и Manjaro. Это производные от дистрибутивов Debian, RedHat и Arch соответственно. Это охватывает все основные семейства дистрибутивов Linux.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

Как видите, команда вообще не вернула записей.

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

last -R -s 20190526110000 -t 20190527130000

№ 10: pmap – использование процессами оперативной памяти

Команда pmap выдает данные о распределении памяти между процессами. Использование этой команды позволит найти причину узких мест, связанных с использованием памяти.

# pmap -d PID

Для того, чтобы получить информацию об использовании памяти процессом с pid # 47394, введите:

# pmap -d 47394

Пример вывода данных:

47394:   /usr/bin/php-cgi
Address           Kbytes Mode  Offset           Device    Mapping
0000000000400000    2584 r-x-- 0000000000000000 008:00002 php-cgi
0000000000886000     140 rw--- 0000000000286000 008:00002 php-cgi
00000000008a9000      52 rw--- 00000000008a9000 000:00000   
0000000000aa8000      76 rw--- 00000000002a8000 008:00002 php-cgi
000000000f678000    1980 rw--- 000000000f678000 000:00000   
000000314a600000     112 r-x-- 0000000000000000 008:00002 ld-2.5.so
000000314a81b000       4 r---- 000000000001b000 008:00002 ld-2.5.so
000000314a81c000       4 rw--- 000000000001c000 008:00002 ld-2.5.so
000000314aa00000    1328 r-x-- 0000000000000000 008:00002 libc-2.5.so
000000314ab4c000    2048 ----- 000000000014c000 008:00002 libc-2.5.so
.....
......
..
00002af8d48fd000       4 rw--- 0000000000006000 008:00002 xsl.so
00002af8d490c000      40 r-x-- 0000000000000000 008:00002 libnss_files-2.5.so
00002af8d4916000    2044 ----- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b15000       4 r---- 0000000000009000 008:00002 libnss_files-2.5.so
00002af8d4b16000       4 rw--- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b17000  768000 rw-s- 0000000000000000 000:00009 zero (deleted)
00007fffc95fe000      84 rw--- 00007ffffffea000 000:00000   
ffffffffff600000    8192 ----- 0000000000000000 000:00000   
mapped: 933712K    writeable/private: 4304K    shared: 768000K

Последняя строка очень важна:

  • mapped: 933712K общее количество памяти, отведенного под файлы
  • writeable/private: 4304K общее количество приватного адресного пространства
  • shared: 768000K общее количество адресного пространства, которое данный процесс использует совместно другими процессами.

Ссылки:

Основные команды для работы в командной строке Linux

Системные команды

Эти команды обычно используется от имени суперпользователя ( с бригадой sudo ).

  • reboot – перезагрузка системы
  • poweroff – выключение компьютера
  • reset – очищает окно терминала
  • passwd – переменить свой пароль, а суперпользователю — поменять пароль любого пользователя
  • users — отобразить перечень пользователей, вошедших в систему.
  • yum — установка, удаление или обновление программного обеспечения в дистрибутивах Fedora, RedHat и т.п.
  • dpkg — аппарат, удаление или обновление программного обеспечения в дистрибутивах Debian, Ubuntu и т.п.
  • apt-get — установка, устранение или обновление программного обеспечения в дистрибутивах на основе Debian (Ubuntu, Mint и т.п.)

Управление действиями

  • ps – отобразить список текущих активных процессов
  • lsof — отобразить список открытых файлов процесса или юзера
  • strace — отобразить список системных вызовов
  • last — отобразить историю перезагрузок и регистраций юзеров в системе
  • kill – послать сигнал процессу, обычно используется для принудительного завершения службы процесса.
  • killall – завершение работы всех процессов, имена которых заданы метеопараметром командной строки
  • top – отображение списка текущих процессов и интерактивное управление ими.

Сетевые бригады

  • ifconfig – конфигурация сетевых интерфейсов
  • route — таблица маршрутизации
  • ifup / ifdown — подсоединить /выключить сетевой интерфейс
  • ip — просмотр или изменение параметров конфигурации протокола IP
  • netstat — показать состояние сетевых соединений
  • arp, ping, nslookup, traceroute — наиболее часто используемые бригады сетевой диагностики.

Файлы конфигурации

В файле /etc/passwd, который упоминался ранее, хранится вся информация о пользователях кроме пароля. Одна строка из этого файла соответствует описанию одного пользователя. Примерное содержание строки таково:

Строка состоит из нескольких полей, каждое из которых отделено от другого двоеточием. Значение каждого поля:

  1. Имя пользователя для входа в систему.
  2. Необязательный зашифрованный пароль.
  3. Числовой идентификатор пользователя (UID).
  4. Числовой идентификатор группы (GID).
  5. Pupkin Поле комментария
  6. Домашний каталог пользователя.
  7. Оболочка пользователя.

Второе и последнее поля необязательные и могут не иметь значения.

В /etc/group, как очевидно из названия хранится информация о группах. Она записана в аналогичном /etc/passwd виде:

Строка состоит из нескольких полей, каждое из которых отделено от другого двоеточием. Значение каждого поля:

  1. Название группы
  2. Необязательный зашифрованный пароль.
  3. Числовой идентификатор группы (GID).
  4. Список пользователей, находящихся в группе.

В этом файле второе и четвертое поля могут быть пустыми.

Файл /etc/shadow хранит в себе пароли, по этому права, установленные на этот файл, не дают считать его простому пользователю. Пример одной из записей из этого файла:

Здесь:

  1. Имя пользователя для входа в систему.
  2. Необязательный зашифрованный пароль.
  3. Дата последней смены пароля.
  4. Минимальный срок действия пароля.
  5. Максимальный срок действия пароля.
  6. Период предупреждения о пароле.
  7. Период неактивности пароля.
  8. Дата истечения срока действия учётной записи.

От: admin

Эта тема закрыта для публикации ответов.

Пользователи и группы

whoami — имя, под которым вы залогиненыgroupadd group_name — создать новую группу с именем group_namegroupdel group_name — удалить группу group_namegroupmod -n new_group_name old_group_name — переименовать группу old_group_name в new_group_nameuseradd -c «Nome Cognome» -g admin -d /home/user1 -s /bin/bash user1 — создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell’а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognomeuseradd user1 — создать пользователя user1userdel -r user1 — удалить пользователя user1 и его домашний каталогusermod -c «User FTP» -g system -d /ftp/user1 -s /bin/nologin user1 — изменить атрибуты пользователяpasswd — сменить парольpasswd user1 — сменить пароль пользователя user1 (только root)chage -E 2005-12-31 user1 — установить дату окончания действия учётной записи пользователя user1pwck — проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadowgrpck — проверяет корректность системных файлов учётных записей. Проверяется файл/etc/groupnewgrp group_name — изменяет первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd

Syntax

who [ OPTION ]... [ FILE ] 

Options

-a, —all Same as using the options -b -d —login -p -r -t -T -u.
-b, —boot Display the time of the last system boot.
-d, —dead Display dead processes.
-H, —heading Print a line of column headings.
—ips Print IP addresses instead of hostnames. With —lookup, canonicalizes based on stored IP, if available, rather than stored hostname.
-l, —login Print system login processes.
—lookup Attempt to canonicalize hostnames via DNS.
-m Only print information about the user and host associated with standard input (the terminal where the command was issued). This method adheres to the POSIX standard.
-p, —process Print active processes spawned by init.
-q, —count Displays all login names, and a count of all logged-on users.
-r, —runlevel Print the current runlevel.
-s, —short Print only name, line, and time fields, which is the default.
-t, —time Print the last time the system clock was changed, if the information is available.
-T, -w, —mesg Add a character which indicates the state of the terminal line: «+» if the terminal is writable, «» if it’s not, or «?» if a bad line is encountered.
-u, —users Print the idle time for each user, and the process ID.
—message Same as -T.
—writable Same as -T.
—help Display a help message, and exit.
—version Display version information, and exit.

Примеры использования who

Используя опцию -a, мы получаем максимум данных, которыми команда готова снабдить нас без каких-либо дополнительных указаний. В состав этой опции входят опции -b, -d, —login, -p, -r, -t, -T, -u:

Этих данных больше, чем при простом использовании who:

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

Нужно узнать текущий уровень запуска (runinit)? Для этого служит команда who в сочетании с опцией -r:

При использовании опции -s выводятся значения NAME, LINE и TIME — информация, идентичная той, что будет получена без использования каких-либо опций. Все то же самое, но уже с добавлением данных о состоянии терминальной сессии, показывает опция -T.

Состояние — это возможность принимать сообщения от других терминалов. Если рядом с названием терминальной линии стоит «+», как на скриншоте, значит, сообщения могут быть приняты от любого стороннего терминала, в противном случае значение примет вид «-». Если вместо плюса или минуса там находится вопросительный знак, то линия неисправна:

Не упоминается в мануале опция -q, тем не менее, она работает, выводя информацию о количестве пользователей в системе:

С помощью -u можно узнать информацию о тех пользователях, которые активны в данный момент:

На этом же скрине видны изменения, которые происходят при использовании опции -H — у колонок с данными появились заголовки.А вот и зомби-процессы, которые показывает опция -d:

Кстати, поле EXIT при использовании этой опции не выводится. Чтобы увидеть его, следует использовать -a.

×

Использование памяти

Раздел «память» показывает информацию об использовании памяти системой. Строки, помеченные «Mem» и «Swap», показывают информацию об оперативной памяти и пространстве подкачки соответственно. Проще говоря, пространство подкачки является частью жесткого диска, который используется как ОЗУ. Когда использование ОЗУ становится почти полным, нечасто используемые области ОЗУ записываются в пространство подкачки и готовы для последующего извлечения при необходимости. Однако из-за медленного доступа к дискам слишком сильная зависимость от подкачки может снизить производительность системы.

Как и следовало ожидать, значения «total», «free» и «used» имеют свои обычные значения. Значение «util mem» — это объем памяти, который может быть выделен процессам без дополнительной замены.

Ядро Linux также пытается сократить время доступа к диску различными способами. Он поддерживает «дисковый кэш» в ОЗУ, где хранятся часто используемые области диска. Кроме того, записи на диск сохраняются в «дисковый буфер», и ядро ​​в конечном итоге записывает их на диск. Общая потребляемая ими память является значением «buff / cache». Это может звучать плохо, но на самом деле это не так — память, используемая кешем, будет выделяться процессам при необходимости.

Системное время, время работы и пользовательские сессии

В самом верхнем левом углу экрана (как отмечено на скриншоте выше) сверху отображается текущее время. Затем следует время безотказной работы системы, которое сообщает нам время, в течение которого система работала. Например, в нашем примере текущее время — «16:55:40», и система работает 86 дней.

Далее идет количество активных пользовательских сессий. В этом примере есть два активных пользовательских сеанса. Эти сеансы могут проводиться либо по TTY (физически в системе, либо через командную строку, либо в среде рабочего стола), либо по PTY (например, через окно эмулятора терминала или через SSH). Фактически, если вы войдете в систему Linux через среду рабочего стола, а затем запустите эмулятор терминала, вы обнаружите, что будет два активных сеанса.

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

Сортировка вывода по столбцам

Вы можете отсортировать вывод, используя параметр –sort. Отсортируем вывод по столбцу CPU:

ps -e -o pcpu,args --sort -pcpu| less

Дефис «-» в параметре сортировки pcpu указывает порядок сортировки по убыванию.

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

ps -e -o pcpu,args --sort -pcpu | head -10

Получаем отсортированный, усеченный список.

Если мы добавим больше столбцов к нашему дисплею, мы сможем отсортировать по большему количеству столбцов. Добавим столбец pmem. Это процент памяти компьютера, который используется процессом. Без дефиса или с плюсом «+» порядок сортировки возрастающий.

ps -e -o pcpu,pmem,args --sort -pcpu,pmem | head -10

Получаем лишний столбец, и новый столбец включается в сортировку. Первый столбец сортируется перед вторым столбцом, а второй столбец сортируется в порядке возрастания, потому что мы не ставили дефис в pmem.

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

ps -e -o pid,pcpu,pmem,args --sort -pcpu,pmem | head -10

Теперь мы можем идентифицировать процессы.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: