CentOS 7 :Что такое /bin/sh? Похоже на Bash, но кажется чем-то другим

При такой проблеме я использовал вариант-p:

su -pc./http-app.py www-data

-p :окружающая среда сохраняется. В частности, он не пытается войти в систему с новой учетной записью, поэтому вы не получаете сообщение:This account is currently not available..

17
09.09.2021, 06:05
2 ответа

Дополнительная точка -на Centos 7, shявляется символической ссылкой на bash. Для shнет отдельного двоичного файла.

[root@work ~]# ls -la `which sh`
lrwxrwxrwx. 1 root root 4 Jun 16  2020 /usr/bin/sh -> bash
[root@work ~]# ls -la /bin/sh
lrwxrwxrwx. 1 root root 4 Jun 16  2020 /bin/sh -> bash

[root@work ~]# rpm -qf /usr/bin/sh /bin/sh
bash-4.2.46-34.el7.x86_64

bash, dash, busyboxи, вероятно, другие оболочки могут проверять командную строку, с которой они были запущены, и будут притворяться чем-то -, например обычным sh, если они так называются. Эта символическая ссылка позволяет этому случиться.

Вы всегда можете ожидать, что /bin/shбудет там и будет базовой оболочкой.

3
09.09.2021, 23:43

Что такое /bin/sh? Мы говорим о наследии Unix здесь! Немного истории:

sh— это Bourne Shell, она была выпущена в 1979 году в версии 7 Unix. Он приобрел популярность после публикации Брайаном Керниганом и Робом Пайком книги «Среда программирования Unix» — первой коммерчески изданной книги, в которой оболочка представлялась как язык программирования в виде учебного пособия.

ksh, оболочка Korn, первоначально написанная Дэвидом Корном, была основана на оригинальном исходном коде оболочки Bourne, это была промежуточная дорога между оболочкой Bourne и cshоболочкой C. Его синтаксис был в основном взят из оболочки Bourne, а его функции управления заданиями напоминали возможности оболочки C. Функциональность оригинальной оболочки Korn была использована в качестве основы для стандарта оболочки POSIX.

bash— это «Оболочка Bourne Again». Синтаксис Bash является надмножеством синтаксиса оболочки Bourne. Синтаксис Bash включает в себя идеи, почерпнутые из оболочки Korn и оболочки C, такие как редактирование командной строки, команда history, стек каталогов, переменные $RANDOM и $PPID, а также синтаксис подстановки команд POSIX $ (… )..

4
10.09.2021, 13:33

Теги

Похожие вопросы