1. 程式人生 > >Ubuntu終端tab鍵補全不了

Ubuntu終端tab鍵補全不了

環境

Ubuntu

情景

在Ubuntu系統下useradd一個新的使用者,切換到該使用者時,發現終端命令列下tab鍵補全不了

$ useradd tab   # 新增tab使用者
$ passwd tab    # 設定密碼
$ su - tab      # 切換到tab使用者,發現按鍵盤的tab鍵補全不了

解決

谷歌發現是用useradd命令建立使用者時沒有指定shell的路徑

$ useradd tab -s /bin/bash

$ useradd --help
用法:useradd [選項] 登入
      useradd -D
      useradd -D [選項]

選項:
  -b, --base-dir BASE_DIR
新賬戶的主目錄的基目錄
-c, --comment COMMENT 新賬戶的 GECOS 欄位 -d, --home-dir HOME_DIR 新賬戶的主目錄 -D, --defaults 顯示或更改預設的 useradd 配置 -e, --expiredate EXPIRE_DATE 新賬戶的過期日期 -f, --inactive INACTIVE 新賬戶的密碼不活動期 -g, --gid GROUP 新賬戶主組的名稱或 ID -G, --groups GROUPS 新賬戶的附加組列表 -h, --help 顯示此幫助資訊並推出
-k, --skel SKEL_DIR 使用此目錄作為骨架目錄 -K, --key KEY=VALUE 不使用 /etc/login.defs 中的預設值 -l, --no-log-init 不要將此使用者新增到最近登入和登入失敗資料庫 -m, --create-home 建立使用者的主目錄 -M, --no-create-home 不建立使用者的主目錄 -N, --no-user-group 不建立同名的組 -o, --non-unique 允許使用重複的 UID 建立使用者 -p, --password PASSWORD
加密後的新賬戶密碼
-r, --system 建立一個系統賬戶 -R, --root CHROOT_DIR chroot 到的目錄 -s, --shell SHELL 新賬戶的登入 shell -u, --uid UID 新賬戶的使用者 ID -U, --user-group 建立與使用者同名的組 -Z, --selinux-user SEUSERSELinux 使用者對映使用指定 SEUSER

現在我已經建立了tab使用者,我們可以通過修改/etc/passwd檔案來解決tab鍵不能補全問題

$ sudo vim /etc/passwd

# 找到tab使用者那行 
# 修改前
tab:x:1000:1000::/home/tab
# 修改後
tab:x:1000:1000::/home/tab:/bin/bash

最後重啟電腦就可以了

$ sudo reboot