web-dev-qa-db-ja.com

Linux-すべてのユーザーをリストする方法

/ etc/passwdからすべてのユーザーとそのUIDをリストするLinux用のスクリプトを作成する方法

User1 uid=0001
User2 uid=0002

...

スクリプトが使用するもの:grep、cut、id、for

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

この場合、awkの方が簡単です。

-Fは、フィールド区切り文字を:として定義します

あなたが欲しいのは1列目と3列目です。 $0をビルドして、出力形式を提供します。

これは強力なawkの非常に基本的な使用法です。この種の問題に頻繁に直面した場合は、いくつかのチュートリアルを読むことをお勧めします。

今回はあなたが魚を手に入れました、私ならあなたは釣りの仕方についていくつかの研究をします。

29
Kent

cutはこれに最適です:

cut -d: -f1 /etc/passwd

これは、「:ファイルの各行の最初のフィールドを除くすべてを、区切り文字として/etc/passwdを使用して切り取る」ことを意味します。

8
Will

私は最良の選択肢はそれだと思います:
grep "/bin/bash" /etc/passwd | cut -d':' -f1

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

ユーザーIDを含めて、すべての通常ユーザー(uid> = 1000)をきちんと注文できます。

0
sjas