Подсчитайте общее количество пользователей в Linux (системные пользователи не включены)

Скриншот моих пользователей

я пытаюсь подсчитать общее количество пользователей, которых я создал в Linux. Я нашел скрипт, который работает, я использую этот метод, если uid 1000+, то это кто-то, кого я создал. однако это было неправильно, мое общее количество пользователей должно быть 4, но указано как 5 из этого сценария. Я опубликую скриншот. Я знаю, как подсчитать общее количество пользователей, включая пользователей системы: getent passwd | туалет -л

awk -F: '$3 >= 1000 { C++ } END { print C+0 }' /etc/passwd

У вас есть 5 пользователей с UID >= 1000 в вашем файле passwd. Пятый — специальный пользователь nobody с UID = 65534. Используйте команду ; print сразу после C++, чтобы увидеть их

Arnaud Valmary 12.12.2022 10:55

@Bodo я поместил код в тег блока.

Svimmel 12.12.2022 12:37

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

Bodo 12.12.2022 12:43

@ArnaudValmary awk -F: '$3 >= 1000 {C++} PRINT {print C+0}' /etc/passwd Нравится?

Svimmel 12.12.2022 13:16

@Bodo, но это не входной файл, а выходной файл, результат скрипта.

Svimmel 12.12.2022 13:17

@Svimmel Код ясно показывает, что /etc/password является входным файлом для команды awk. Вы должны скопировать и вставить его как текст вместо ссылки или встраивания снимка экрана. Результатом является число, которое упоминается в тексте вашего вопроса.

Bodo 12.12.2022 13:26

@Bodo Бодо, я не думаю, что вы можете скопировать из оболочки терминала Virtualbox, поэтому я сделал снимок экрана, вы же не ожидаете, что я все это напишу, не так ли? и я думаю, что у нас с вами разные взгляды на ввод/вывод. Для меня ввод — это то, что вы вводите, а вывод — это результаты того, что вы вводите. Как в калькуляторе, я ввожу 3 + 3, а вывод — 6, например.

Svimmel 12.12.2022 13:34

Я не знаю, можете ли вы копировать и вставлять данные со своей виртуальной машины, но есть разные способы копирования данных, например. с помощью общей папки, сетевого диска или scp (или WinSCP). Нет, вам следует избегать повторного ввода вашего кода/данных/ошибок или любого другого текста, относящегося к вопросу, потому что это может привести к возникновению или непреднамеренному исправлению ошибок. Вы просите помощи у людей, которые жертвуют своим временем, поэтому вы несете ответственность за то, чтобы нам было легко помочь вам. Мы не можем скопировать и вставить ваш снимок экрана, чтобы проанализировать проблему или протестировать предлагаемое решение. Вы ожидаете, что мы перепечатаем ваши данные со скриншота?

Bodo 12.12.2022 13:52

@ Бодо, ты совершенно неправильно понял. Этот снимок экрана является РЕЗУЛЬТАТОМ, а не «сценарием». Вы ничего не можете с этим поделать. Код в блоке, который вы должны скопировать и вставить в терминал Linux, чтобы получить ЭТО результат. Вы буквально неправильно поняли вопрос. Зачем копипастить РЕЗУЛЬТАТ...

Svimmel 12.12.2022 13:56

И вы, видимо, не читали текст, объясняющий почему нельзя загружать изображения всего, что по сути является текстом.. Файл /etc/password является входным файлом для вашей команды, и на скриншоте ясно видно что-то похожее на /etc/password. Конечно, я не знаю, действительно ли он показывает этот файл. Суть в том, что вы должны копировать и вставлять любой текст как текст, независимо от того, является ли он кодом, вводом, выводом, сообщением об ошибке или любым другим текстом, связанным с вашим вопросом. Я проголосовал за вопрос сейчас и проголосовал за его закрытие.

Bodo 12.12.2022 14:31

Вместо того, чтобы прилагать усилия для спора, вы должны улучшить вопрос в соответствии с просьбой. Мы можем использовать содержимое вашего файла /etc/passwd, чтобы воспроизвести проблему и протестировать предлагаемое решение. Ожидание предоставления любого текста в виде текста справедливо и для вывода. Конечно, мы можем что-то сделать с вашим выводом: мы можем использовать такие инструменты, как diff, чтобы сравнить наш вывод с вашим. Это может помочь нам помочь вам.

Bodo 12.12.2022 15:35
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
12
64
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавьте ; print сразу после C++, чтобы контролировать, каких пользователей касается ваш фильтр:

awk -F: '$3 >= 1000 { C++; print } END { print C+0 }' /etc/passwd

Вывод содержит:

  • nobody
  • mahandri
  • kingfoolish
  • Benteiversen
  • Geirgjerde

Другие вопросы по теме