Существует более простой подход, который использует опции форматирования ps и AWK
. Мы знаем, что по умолчанию у пользователей-пользователей есть UID, который варьируется от 1000 до 65533 (UID 65534 является пользователем nobody ).
Мы также знаем, что ps имеет флаг форматирования -o, где мы можем выбрать вывод UID, а также процесс. Формат был бы следующим (обратите внимание, что я показываю здесь только 5 первых строк)
ps -eo uid,cmd | head -n 5
UID CMD
0 /sbin/init
0 [kthreadd]
0 [ksoftirqd/0]
0 [kworker/0:0H]
Таким образом, мы можем сделать
ps -eo uid,cmd | awk '$1 >= 1000 && $1 < 65534 '
AWK помогает нам печатать все строки где столбец 1, UID больше или равно 1000 И меньше 635534.
Пример вывода из моей системы (где у меня есть только один пользователь):
$ ps -eo uid,cmd | awk '$1 >= 1000 && $1 < 635534 ' | tail -n 5
1000 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
1000 /usr/lib/firefox/firefox google.com
1000 ps -eo uid,cmd
1000 awk $1 >= 1000 && $1 < 635534
1000 tail -n 5
EDIT
Я понял, что OP хотел EDIT процессов, используемых человеческими пользователями.
Если все, что вам действительно интересно, это количество процессов, которые принадлежат человеческим пользователям, вот быстрое решение:
ps --no-headers -eo uid,args --sort=uid | awk '$1 >= 1000 && $1 < 65534 {counter++}; END{print counter" human processes"}'
Что касается моего предыдущего решения, я улучшил AWK, которая использует ассоциативные массивы на основе UID, а также добавляет дополнительные флаги в команду ps для включения имени пользователя и сортировки вывода по UID.
ps -eo uid,euser,cmd --sort=uid | awk '$1 >= 1000 && $1 < 65534 { HUMAN++; procTotals[$1]++; if( $1 > UID ) username[$1]=$2; UID=$1 } END{ print "Out of "NR" processes, "HUMAN" belong to human users"; for(i=1000;i<=UID;i++ ) print username[i]":"procTotals[i] }'
Пример выходного сигнала:
xieerqi:$ ps -eo uid,euser,cmd --sort=uid | awk '$1 >= 1000 && $1 < 65534 { HUMAN++; >
Out of 215 processes, 88 belong to human users
xieerqi:84
testuser:4
Для лучшей читаемости, здесь приведен код. Обратите внимание, что часть awk может быть преобразована в скрипт с #!/usr/bin/awk -f shebang line
ps -eo uid,euser,cmd --sort=uid | awk '$1 >= 1000 && $1 < 65534 {
HUMAN++; procTotals[$1]++;
if( $1 > UID ) username[$1]=$2; UID=$1
}
END{ print "Out of "NR" processes, "HUMAN" belong to human users";
for(i=1000;i<=UID;i++ )
print username[i]":"procTotals[i]
}'
, я не буду описывать, как создавать массивы mdadm здесь. В Интернете много статей. Тем не менее, есть одна серьезная проблема: установщик Ubiquity не учитывает массивы, созданные в реальном сеансе, поэтому вы, вероятно, получите незагружаемую систему после установки в таком массиве.
Создайте настройку, например my:$ sudo fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
...
Device Boot Start End Blocks Id System
/dev/sda1 2048 156299263 78148608 83 Linux
/dev/sda2 156299264 311556095 77628416 7 HPFS/NTFS/exFAT
/dev/sda3 * 311556096 312580095 512000 83 Linux
Disk /dev/sdb: 80.0 GB, 80026361856 bytes
...
Device Boot Start End Blocks Id System
/dev/sdb1 2048 156301311 78149632 83 Linux
Disk /dev/md0: 160.0 GB, 160048349184 bytes
...
Disk /dev/md0 doesn't contain a valid partition table
Как вы можете догадаться, я создал /dev/md0 mdadm массив из /dev/sda1 и /dev/sdb1. Теперь он пуст. Поставим что-нибудь на нем. Создавайте разделы на /dev/md0 по своему усмотрению: Важно: установите /boot на один из разделов вне массива, потому что GRUB не поддерживает mdadm. В моем случае это /dev/sda3. Если вам нужна более быстрая загрузка вашей системы, она должна быть размещена в начале диска. Установите Ubuntu. Нажмите «Продолжить тестирование». Или перезагрузитесь и увидите приглашение initramfs. Теперь вы должны chroot войти в установленную систему и установить mdadm: sudo mount /dev/md0p6 /mnt
sudo mount /dev/md0p5 /mnt/home
sudo mount /dev/sda3 /mnt/boot
for d in /dev /proc /sys /run; do sudo mount --bind $d /mnd$d; done
chroot /mnt
apt-get install mdadm
Установка mdadm должна устранить проблему с загрузкой. Раздел показывает «unknown» Используется в GParted
Это произошло со мной в 17.10, потому что в Windows 10 Lenovo P51 использовался раздел «Диспетчер логических дисков» (LDM).
для сокращения раздела изнутри Windows, как показано на рисунке: https://askubuntu.com/a/521195/52975
Затем вы можете установить Ubuntu на выделенное свободное пространство.
Partition показывает «unknown» Используется в GParted
Затем я ударил вторую проблему: Windows заявила, что у меня 400Gb свободного места в разделе, но я мог только сжимать 250Gb.
Решение заключалось в том, чтобы войти в Windows и:
Отключить файл страницы (своп AKA Windows) Отключить защиту системы, как указано в: https: // askubuntu.com/a/521195/52975
Тогда после перезагрузки он позволил мне полностью сжать его.
Помогает ли вам любое из следующих действий? (извините, у меня недостаточно комментариев, чтобы прокомментировать это).
Теперь предположим, что мы собираемся установить Ubuntu 11.04, и сначала процесс установки мы встретим. Выделите экран пространства диска (самое важное шаг в процессе установки). В окне «Выделить диск» Выберите «Что-то еще», чтобы вручную разбить диск. На следующем экране показан раздел sda1 для Windows Xp и свободного места. Теперь мы собираемся установить Ubuntu 11.04, поэтому нам нужно создать / раздел и «Сменить». Create / Partition: выберите свободное место и нажмите кнопку «Добавить». Ubuntu 11.04 требует около 4,4 ГБ, поэтому мы должны ввести значение более 4,4 ГБ. Здесь, в моем случае, я ставлю 6000 Мбайт и 6 ГБ. Из «Использовать как» я выбрал файловую систему Ext4 для журналов. Из «Точки монтирования» я выбрал /. Нажмите кнопку «Добавить», чтобы создать / раздел. Create Swap: на предыдущем экране выберите свободное место и нажмите кнопку «Добавить». Swap не требует много места. В моем случае я положил 500 МБ из «Использовать как» выберите область подкачки. Нет необходимости в точке монтирования. Нажмите кнопку «ОК», чтобы создать своп. Установите: теперь у нас есть /, раздел и своп, поэтому мы готовы к установке. Чтобы начать процесс установки, нажмите кнопку «Установить сейчас».Ручное разбиение на установку Ubuntu
Для установки Windows на отдельный раздел это должно быть достаточно понятно из опции «Установить Ubuntu рядом с ними», однако вы можете столкнуться с следующим ошибка.
Теперь предположим, что мы собираемся установить Ubuntu 11.04 и сначала на процесс установки мы встретим экран Allocate disk space (самый важный шаг в процессе установки). В окне «Выделить дисковое пространство» Выберите «Кое-что еще», чтобы разбить ваш диск вручную.
Ваш существующий раздел (Windows) находится слева, Ubuntu - справа. Это стандартный порядок при сжатии одного раздела для создания другого для двойной загрузки.
, я не буду описывать, как создавать массивы mdadm здесь. В Интернете много статей. Тем не менее, есть одна серьезная проблема: установщик Ubiquity не учитывает массивы, созданные в реальном сеансе, поэтому вы, вероятно, получите незагружаемую систему после установки в таком массиве.
Создайте настройку, например my:$ sudo fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
...
Device Boot Start End Blocks Id System
/dev/sda1 2048 156299263 78148608 83 Linux
/dev/sda2 156299264 311556095 77628416 7 HPFS/NTFS/exFAT
/dev/sda3 * 311556096 312580095 512000 83 Linux
Disk /dev/sdb: 80.0 GB, 80026361856 bytes
...
Device Boot Start End Blocks Id System
/dev/sdb1 2048 156301311 78149632 83 Linux
Disk /dev/md0: 160.0 GB, 160048349184 bytes
...
Disk /dev/md0 doesn't contain a valid partition table
Как вы можете догадаться, я создал /dev/md0 mdadm массив из /dev/sda1 и /dev/sdb1. Теперь он пуст. Поставим что-нибудь на нем. Создавайте разделы на /dev/md0 по своему усмотрению: Важно: установите /boot на один из разделов вне массива, потому что GRUB не поддерживает mdadm. В моем случае это /dev/sda3. Если вам нужна более быстрая загрузка вашей системы, она должна быть размещена в начале диска. Установите Ubuntu. Нажмите «Продолжить тестирование». Или перезагрузитесь и увидите приглашение initramfs. Теперь вы должны chroot войти в установленную систему и установить mdadm: sudo mount /dev/md0p6 /mnt
sudo mount /dev/md0p5 /mnt/home
sudo mount /dev/sda3 /mnt/boot
for d in /dev /proc /sys /run; do sudo mount --bind $d /mnd$d; done
chroot /mnt
apt-get install mdadm
Установка mdadm должна устранить проблему с загрузкой. раздел показывает "неизвестно", используемое в программы gparted
это случилось со мной на 17.10, потому что мой Windows 10 компания Lenovo Р51 использовали диспетчера логических дисков (ЛДМ) раздел.
решение было уменьшить раздел изнутри окна, как показано на рисунке: https://askubuntu.com/a/521195/52975
, то Вы можете установить Ubuntu на свободное выделенное пространство.
раздел показывает "неизвестно", используемое в программы gparted
тогда я ударила вторая проблема: окна сказал, что у меня 400гб свободного места в разделе, но я мог только сжать 250 Гб.
было принято решение войти внутрь Windows и:
отключить файл подкачки (он же своп в Windows) отключить систему защиты!д10]как уже упоминалось в: https://askubuntu.com/a/521195/52975
после перезагрузки, это позволит мне уменьшить его всю дорогу.
Помогает ли вам любое из следующих действий? (извините, у меня недостаточно комментариев, чтобы прокомментировать это).
Теперь предположим, что мы собираемся установить Ubuntu 11.04, и сначала процесс установки мы встретим. Выделите экран пространства диска (самое важное шаг в процессе установки). В окне «Выделить диск» Выберите «Что-то еще», чтобы вручную разбить диск. На следующем экране показан раздел sda1 для Windows Xp и свободного места. Теперь мы собираемся установить Ubuntu 11.04, поэтому нам нужно создать / раздел и «Сменить». Create / Partition: выберите свободное место и нажмите кнопку «Добавить». Ubuntu 11.04 требует около 4,4 ГБ, поэтому мы должны ввести значение более 4,4 ГБ. Здесь, в моем случае, я ставлю 6000 Мбайт и 6 ГБ. Из «Использовать как» я выбрал файловую систему Ext4 для журналов. Из «Точки монтирования» я выбрал /. Нажмите кнопку «Добавить», чтобы создать / раздел. Create Swap: на предыдущем экране выберите свободное место и нажмите кнопку «Добавить». Swap не требует много места. В моем случае я положил 500 МБ из «Использовать как» выберите область подкачки. Нет необходимости в точке монтирования. Нажмите кнопку «ОК», чтобы создать своп. Установите: теперь у нас есть /, раздел и своп, поэтому мы готовы к установке. Чтобы начать процесс установки, нажмите кнопку «Установить сейчас».Ручное разбиение на установку Ubuntu
Для установки Windows на отдельный раздел это должно быть достаточно понятно из опции «Установить Ubuntu рядом с ними», однако вы можете столкнуться с следующим ошибка.
Теперь предположим, что мы собираемся установить Ubuntu 11.04 и сначала на процесс установки мы встретим экран Allocate disk space (самый важный шаг в процессе установки). В окне «Выделить дисковое пространство» Выберите «Кое-что еще», чтобы разбить ваш диск вручную.
Ваш существующий раздел (Windows) находится слева, Ubuntu - справа. Это стандартный порядок при сжатии одного раздела для создания другого для двойной загрузки.