Katakanlah, saya membuka terminal dan memasukkan / menjalankan beberapa perintah shell.
Tapi saya tidak meminta Bash atau shell lain secara eksplisit.
Shell apa yang digunakan secara default?
Katakanlah, saya membuka terminal dan memasukkan / menjalankan beberapa perintah shell.
Tapi saya tidak meminta Bash atau shell lain secara eksplisit.
Shell apa yang digunakan secara default?
Jawaban:
Yang ditentukan pada baris Anda di /etc/passwd(itu adalah :baris yang terpisah dan shell adalah yang terakhir).
Misalnya milik saya:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
Ini dia /bin/bash(default Ubuntu)
Anda juga dapat menggunakan chsh:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Ini memberi tahu saya bahwa shell saya adalah /bin/bashdan membiarkan saya mengubahnya.
Akhirnya, echo $SHELLakan melakukan hal yang sama:
$ echo $SHELL
/bin/bash
sudo netstat -an | grep LISTEN | grep -v ^unix. Saya tidak melihat alasan untuk menyertakannya dalam subshell bash.
sudo bash -c "..."akan memastikan bahwa seluruh pipa dieksekusi oleh root.
commandA | sudo commandB | commandC, Anda bisa melakukan yang sudo idpertama (menjalankan idperintah sebagai root, tetapi juga memperoleh token " use sudo without password prompt " yang berlangsung selama 15 menit (default) 15 menit.
chshmaka Anda harus keluar dan masuk kembali untuk melihat perubahan ini.
GNU Bash adalah shell yang digunakan secara default di terminal di Ubuntu. Namun ketika skrip dieksekusi pada boot sistem maka dash digunakan, karena dash adalah / bin / sh.
Ini didefinisikan dalam variabel lingkungan $ SHELL. Anda dapat memeriksa dengan mengetik echo $SHELLdi terminal.
mengetikkan yang berikut ini akan menampilkan shell apa yang dibuka terminal:
echo $SHELL
Namun, untuk mengetahui cangkang apa yang Anda gunakan saat ini (Anda mungkin telah mengubahnya) ketik
ps -p $$
mis. Anda akan melihat bahwa shell adalah bash pada contoh output
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
Metode lain adalah menggunakan
echo $0
ini hanya akan mengembalikan nama shell saat ini.
echo $0
Secara default itu bash:
env | grep ^SHELL=
Dalam kebanyakan kasus akan menghasilkan
SHELL=/bin/bash
useradd, defaultnya adalah sh. $ useradd -D|grep SHELL SHELL=/bin/sh.
Untuk mendapatkan path file yang dapat dieksekusi, shell dapat digunakan
readlink -f /proc/$$/exe
Beberapa kemungkinan keluaran adalah:
/bin/bash/usr/bin/bash/usr/bin/zsh/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh