Скажімо, я відкрив термінал і ввів / виконав деякі команди оболонки.
Але я не посилався явно на 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