Giả sử, tôi đã mở một thiết bị đầu cuối và nhập / thực hiện một số lệnh shell.
Nhưng tôi đã không gọi rõ ràng Bash hoặc bất kỳ shell nào khác.
Vỏ nào được sử dụng theo mặc định?
Giả sử, tôi đã mở một thiết bị đầu cuối và nhập / thực hiện một số lệnh shell.
Nhưng tôi đã không gọi rõ ràng Bash hoặc bất kỳ shell nào khác.
Vỏ nào được sử dụng theo mặc định?
Câu trả lời:
Dòng được chỉ định trên dòng của bạn trong /etc/passwd
(nó là một :
dòng riêng biệt và vỏ là dòng cuối cùng).
Ví dụ của tôi:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
Đây là /bin/bash
(mặc định Ubuntu)
Bạn cũng có thể sử dụng chsh
:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Điều này nói với tôi vỏ của tôi là /bin/bash
và để tôi thay đổi nó.
Cuối cùng, echo $SHELL
sẽ làm tương tự:
$ echo $SHELL
/bin/bash
sudo netstat -an | grep LISTEN | grep -v ^unix
. Tôi thấy không có lý do gì để gửi nó trong một subshell bash.
sudo bash -c "..."
sẽ đảm bảo rằng toàn bộ đường ống được thực thi bởi root.
commandA | sudo commandB | commandC
, bạn có thể thực hiện sudo id
lần đầu tiên (chạy id
lệnh như root
, nhưng cũng có được mã thông báo " sử dụng sudo mà không cần mật khẩu " kéo dài trong (mặc định) 15 phút.
chsh
thì bạn phải đăng xuất và đăng nhập lại để xem sự thay đổi này.
GNU Bash là shell được sử dụng theo mặc định trong các thiết bị đầu cuối trên Ubuntu. Tuy nhiên, khi tập lệnh được thực thi khi khởi động hệ thống thì dash được sử dụng, vì đó là dash là / bin / sh.
Điều này được định nghĩa trong biến môi trường $ SHELL. Bạn có thể kiểm tra bằng cách gõ echo $SHELL
vào thiết bị đầu cuối.
gõ như sau sẽ hiển thị shell mà thiết bị đầu cuối đã mở bằng:
echo $SHELL
Tuy nhiên, để tìm hiểu loại vỏ nào bạn hiện đang sử dụng (bạn có thể đã thay đổi nó)
ps -p $$
ví dụ: bạn sẽ thấy shell được bash trong ví dụ đầu ra
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
Một phương pháp khác là sử dụng
echo $0
điều này chỉ đơn giản sẽ trả về tên của shell hiện tại.
echo $0
Theo mặc định, đó là bash:
env | grep ^SHELL=
Trong hầu hết các trường hợp sẽ sản xuất
SHELL=/bin/bash
useradd
, nó sẽ mặc định sh
. $ useradd -D|grep SHELL
SHELL=/bin/sh
.
Để có được đường dẫn tệp của shell hiện tại, người ta có thể sử dụng
readlink -f /proc/$$/exe
Một số đầu ra có thể là:
/bin/bash
/usr/bin/bash
/usr/bin/zsh
/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh