Tôi đã ngạc nhiên rằng tôi đã không tìm thấy câu hỏi này trên trang web. Vì vậy, hôm nay $
đã xuất hiện sau khi tôi đăng nhập như một người dùng mới. Điều này thật bất ngờ vì Lời nhắc của người dùng chính của tôi bắt đầu bằng [email protected]:~$
.
Vậy, làm thế nào để tôi chuyển từ Shell khác này sang bash?
Giả sử Shell chưa biết hỗ trợ chạy một lệnh tuyệt đối, bạn có thể thử: /bin/bash
Để thay đổi Shell mặc định, tôi sẽ sử dụng chsh(1)
. Sử dụng mẫu: chsh -s /bin/bash $USER
Bạn nhập bash
. Nếu bạn muốn đây là thay đổi vĩnh viễn Shell mặc định thành /bin/bash
Bằng cách chỉnh sửa /etc/passwd
.
Đây là một số đoạn trích từ /etc/passwd
Của tôi:
avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin
Trường cuối cùng chứa Shell, Sửa đổi trường sau khi :
Cuối cùng thành Shell hợp lệ hoặc không hợp lệ sẽ hoạt động. /bin/false
Và /sbin/nologin
Có nghĩa là người dùng không có Shell đăng nhập thực sự, mặc dù nếu pam không được thiết lập đúng thì điều này không có nghĩa là họ không thể đăng nhập (Tôi đã báo cáo lỗi điều này trong Arch Linux, bởi vì bạn có thể đăng nhập bằng đồ họa mà không cần phải đăng nhập Shell). /bin/bash
Và /bin/zsh
Đều là các shell hợp lệ, xem /etc/shells
Để biết danh sách các shell hợp lệ trên hệ thống của bạn. Đây là /etc/shells
Của tôi nếu bạn quan tâm.
/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash
Có, bạn có thể sử dụng chsh
hoặc usermod
để làm những việc tương tự, xin nhớ đây chỉ là các tệp văn bản có cấu trúc và TIMTOWTDI.
Nếu chsh hoặc chỉnh sửa thủ công cấu hình sẽ không hoạt động, nhưng tập lệnh ~/.profile được thực thi khi đăng nhập, hãy thêm dòng này:
exec /bin/bash --login