我需要從/proc/*/status
但如何使用grep提取UID信息?
cat $i/status|grep "^Uid"|awk '{printf "%4s",$2}'
獲取用戶名只顯示號碼,而不是我需要的名字,如果是0
我需要顯示的根。
我需要從/proc/*/status
但如何使用grep提取UID信息?
cat $i/status|grep "^Uid"|awk '{printf "%4s",$2}'
獲取用戶名只顯示號碼,而不是我需要的名字,如果是0
我需要顯示的根。
你幾乎沒有。使用getent
解決UID到用戶名:
getent passwd `grep "^Uid" /proc/$i/status |awk '{printf "%4s",$2}'`| cut -d: -f1
$ awk 'NR==FNR {uid[$3]=$1; next} /^Uid:/ {print uid[$2]}' FS=":" /etc/passwd FS="[ \t]+" /proc/1665/status
root
解釋:
NR==FNR { # /etc/passwd
uid[$3]=$1 # an array with key=uid, value=username
next
}
/^Uid:/ { # /proc/.../status record startin with Uid
print uid[$2] # print username from array where uid matches
}
謝謝,但也打印數字,我怎麼做纔打印用戶名? –
只爲我打印用戶名。 – Misko