Независимость между sudo и инструкцией, которую он получает в качестве аргумента

enter image description here

Я не понимаю, почему каталог dir1 не отображается с тем же цветом. Хотя это может показаться неважным, мне кажется, что это является нарушением так часто упоминаемого принципа независимости в вычислительной технике (у меня есть профессора, которые упоминают его во время каждой лекции).

Я знаю, что «ls» является аргументом «sudo», но не должен ли «sudo» просто изменить привилегии и НЕ мешать каким-либо образом инструкции, которую он получает в качестве аргумента?

2
задан 10 January 2014 в 17:43

2 ответа

Это несоответствие происходит из простого варианта ls и ничего больше.

На самом деле ваш ls имеет псевдоним ls --color=auto. Чтобы увидеть это попробуйте в терминале,

type ls

Вот почему у вас есть цветные выходы. Но когда вы используете sudo ls, он использует /bin/ls, у которого нет опции цвета. Таким образом, он не показывает цветные результаты.

Если вы попробуете /bin/ls, у вас также будет меньше цвета. Или попробуйте sudo ls --color=auto, который должен дать вам цвет.

0
ответ дан 10 January 2014 в 17:43

Я считаю , это потому, что ваш пользователь octavian и повышение прав этого пользователя происходит в двух разных оболочках.

Ubuntu по умолчанию использует bash в качестве оболочки для пользователей. Когда вы запускаете команды через sudo, оболочка меняется на sh.

Вот скриншот, демонстрирующий различные оболочки.

При первом запуске ls вы можете видеть, что я в оболочке bash. Вы можете сказать, потому что подсказка отмечает мое имя пользователя, имя хоста и текущий каталог.

Когда я переключаюсь на sh, приглашение меняется, так как это совершенно другая оболочка с различными функциями.

enter image description here

Существуют тонны различных оболочек, все с различными функциями, приглашениями и опциями настройки. Одна из наиболее настраиваемых оболочек - zsh.

0
ответ дан 10 January 2014 в 17:43

Другие вопросы по тегам:

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