Linux - Как вывести список всех пользователей

Как написать скрипт для Linux, в котором перечислены все пользователи из /etc/passwd и их UID

User1 uid=0001
User2 uid=0002
...

сценарий должен использовать: grep, cut, id, для


person Tadeusz Majkowski    schedule 28.11.2013    source источник
comment
Это действительно не платформа для домашних заданий.   -  person SBI    schedule 28.11.2013


Ответы (4)


awk -F: '$0=$1 " uid="$3' /etc/passwd

awk в этом случае проще.

-F определяет разделитель полей как :

так что вы хотите, это 1-й и 3-й столбцы. поэтому создайте $0, чтобы предоставить выходной формат.

это очень простое использование мощного awk. вы можете прочитать некоторые учебники, если вы часто сталкивались с такой проблемой.

На этот раз у тебя есть рыба, на твоем месте я собираюсь провести небольшое исследование о том, как ловить рыбу.

person Kent    schedule 28.11.2013

cut подходит для этого:

cut -d: -f1 /etc/passwd

Это означает «вырезать, используя : в качестве разделителя, все, кроме первого поля, из каждой строки файла /etc/passwd».

person Will    schedule 01.05.2014

Думаю, лучший вариант такой:
grep "/bin/bash" /etc/passwd | cut -d':' -f1

person Sanjar Stone    schedule 02.11.2014
comment
этот ответ - то, что я ищу. Это дает пользователям, которые могут войти в систему с помощью графического интерфейса :) - person Edward Torvalds; 13.01.2015

awk  -F':' '$3>999 {print $1 " uid: " $3}' /etc/passwd | column -t | grep -v nobody

Дает вам всех обычных пользователей (uid >= 1000), аккуратно упорядоченных, включая идентификатор пользователя.

person sjas    schedule 10.02.2016