Скажімо, я відкрив термінал і ввів / виконав деякі команди оболонки.
Але я не посилався явно на Bash або будь-яку іншу оболонку.
Яка оболонка використовувалася за замовчуванням?
Скажімо, я відкрив термінал і ввів / виконав деякі команди оболонки.
Але я не посилався явно на Bash або будь-яку іншу оболонку.
Яка оболонка використовувалася за замовчуванням?
Відповіді:
Той, що вказаний у вашій лінії в /etc/passwd(це :окремий рядок, а оболонка - остаточна).
Наприклад, моє:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
Ось це /bin/bash(за замовчуванням Ubuntu)
Ви також можете використовувати chsh:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Це говорить мені, що це моя оболонка, /bin/bashі дозволяє мені її змінити.
Нарешті, echo $SHELLзробимо те саме:
$ echo $SHELL
/bin/bash
sudo netstat -an | grep LISTEN | grep -v ^unix. Я не бачу причин вкладати це в баштину підзаглушку.
sudo bash -c "..."слід забезпечити виконання всієї труби коренем.
commandA | sudo commandB | commandC, ви можете зробити sudo idперший (виконує idкоманду як root, але також набуває маркер " використовувати sudo без введення пароля ", який триває (за замовчуванням) 15 хвилин.
chshто для того, щоб побачити цю зміну, ви повинні вийти з системи та увійти знову .
GNU Bash - оболонка, що використовується за замовчуванням у терміналах Ubuntu. Однак, коли сценарії виконуються під час завантаження системи, тоді використовується тире, оскільки це тире / bin / sh.
Це визначено в змінній середовищі $ SHELL. Ви можете перевірити, ввівши echo $SHELLтермінал.
ввівши наступне, буде показано, з якою оболонкою відкрився термінал:
echo $SHELL
Однак, щоб дізнатись, в якій оболонці ви зараз перебуваєте (можливо, ви її змінили)
ps -p $$
наприклад, ви побачите, що оболонка є ударом у прикладі виводу
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
Інший метод - це використання
echo $0
це просто поверне ім'я поточної оболонки.
echo $0
За замовчуванням це bash:
env | grep ^SHELL=
У більшості випадків вироблять
SHELL=/bin/bash
useradd, він за замовчуванням sh. $ useradd -D|grep SHELL SHELL=/bin/sh.
Щоб отримати шлях до файлу поточного виконуваного оболонки, можна скористатися
readlink -f /proc/$$/exe
Деякі можливі результати:
/bin/bash/usr/bin/bash/usr/bin/zsh/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh