所以基本上,我想在一個文本檔案中獲取所有用戶的串列。首先,我嘗試ls了/home目錄并將其輸出到檔案。但是當我這樣做時,它只是將用戶放在一個串列中,user1 user2 user3 user4但我需要這樣的串列:
user1
user2
user3
user4
所以任何幫助都會很棒!謝謝
uj5u.com熱心網友回復:
/etc/passwd您只需排除系統帳戶即可直接從中獲取用戶串列。你需要知道你的UID_MIN分布是什么UID_MAX。你可以簡單地得到它,例如
$ grep '^UID_' /etc/login.defs
UID_MIN 1000
UID_MAX 60000
現在簡單地輸出用戶/etc/passwd(并且可以選擇排序)排除該范圍之外的 UID,例如
$ awk -F: '$3 >= 1000 && $3 <= 60000 { print $1 }' /etc/passwd | sort
alan
anna
darrell
david
deborah
dell
dmimms
drr
...
要保存到檔案,只需將結果重定向到您選擇的檔案名,例如
$ awk -F: '$3 >= 1000 && $3 <= 60000 { print $1 }' /etc/passwd | sort > filename
uj5u.com熱心網友回復:
你可以試試ls > filename.txt
uj5u.com熱心網友回復:
使用 bash 的通配符 ( *):
cd /home/
printf "%s\n" * >file
輸出到檔案:
用戶1 用戶2 用戶3 用戶4
看:help printf
uj5u.com熱心網友回復:
建議使用find命令。
find /home -maxdepth 1 -mindepth 1 -type d -printf "%f\n"
或者更好地檢查那些擁有有效外殼的用戶。
并非所有擁有 shell 的用戶都有主目錄。
awk -F: '/nologin$/{next}{print $1}' /etc/passwd
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/487312.html
