Shell

您可以在命令視窗中用其他內容替換顯示的文本嗎?

  • October 12, 2015

我正在嘗試管理使用者帳戶。它們基本上只是數字,但我寧願在螢幕上看到使用者姓氏。是否可以用其他內容自動替換顯示的文本?

例如,當我去/home/users輸入時ls-al,我能以某種方式看到:

Smith
Johnson
Adams
Andrews

代替

001 
002 
003 
004

或者我能以某種方式看到兩者嗎?

001 "Smith"
002 "Johnson"
003 "Adams"
004 "Andrews"

如果我理解正確,您按數字命名了所有使用者,並且您想查看他們的姓氏。

他們的姓氏儲存在哪裡?換句話說,您需要在名稱和數字之間建立某種關聯;這些資訊的來源在哪裡?

ls假設您有一些將 NUMBER 與 LAST-NAME 相關聯的主列表,那麼您可以為自己設置一個前端。例如:

如果你有一個文件“usernames.list”:

001 Smith
002 Johnson
003 Adams
004 Andrews

然後你可以編寫一個循環來重新實現ls,但你的列表和它在 /home 中找到的鍵之間存在相關性:

for DIR in * ; do fgrep ${DIR} /path/to/usernames.list ; done

哪個會列印:

001 Smith
002 Johnson
003 Adams
004 Andrews

如果您的使用者列表比那些鍵/值對更複雜,您可以根據需要使用cut來解析資訊。

鄭重聲明,這不是管理使用者的標準方式。

POSIX 系統上的使用者已經擁有唯一標識符(使用者 ID,請參見id命令),因此從 001 開始逐步命名所有使用者絕對不理想。

引用自:https://unix.stackexchange.com/questions/235669