Автор Тема: Вопросы по командной оболочке bash  (Прочитано 481 раз)

Оффлайн makler73

  • Начинающий
  • *
  • Сообщений: 45
Не могу понять как это должно работать:
запускаю bash с профилем обычного пользователя, набираю команду "kwrite" для  вызова редактора KWrite все запускается,
закрываю Kwrite, в bash меняю пользователя на  root,   пытаюсь опять вызвать тот же редактор результат- команда не найдена
меняю снова пользователя на обычного, опять пытаюсь вызвать редактор KWrite -  результат опять- команда не найдена

Вопрос- почему после смены пользователя на root и обратно, команда перестает работать? и что делать, что быснова можно было запустить ?

dango_

  • Гость
Давайте проверим.
Стартеркит с KDE. Режим Live.
В терминале kwrite можно запустить командой без указания полного пути:
[altlinux@localhost ~]$ kwrite
Потому что пути для пользователя определены в переменной PATH:
[altlinux@localhost ~]$ echo $PATH
/home/altlinux/bin:/usr/local/bin:/usr/lib/kf5/bin:/usr/bin:/bin:/usr/games
Получаем права root:
[altlinux@localhost ~]$ su -
[root@localhost ~]#
Здесь значение переменной PATH другое:
[root@localhost ~]# echo $PATH
/root/bin:/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin
Поэтому при попытке запустить kwrite без указания полного пути получаем такую ошибку:
[root@localhost ~]# kwrite
-bash: kwrite: команда не найдена
Выходим из сеанса root:
[root@localhost ~]# exit
выход
[altlinux@localhost ~]$
Проверяем переменную PATH:
[altlinux@localhost ~]$ echo $PATH
/home/altlinux/bin:/usr/local/bin:/usr/lib/kf5/bin:/usr/bin:/bin:/usr/games
Пути для пользователя вернулись. И kwrite можно запустить без указания полного пути.
Вопрос- почему после смены пользователя на root и обратно, команда перестает работать? и что делать, что быснова можно было запустить ?
А как вы получаете права root?
« Последнее редактирование: 25.12.2022 12:16:58 от dango_ »

Оффлайн N0rbert

  • alt linux team
  • ***
  • Сообщений: 231
  • snk@
[root@localhost ~]# $PATH

Правильнее использовать echo $PATH , т.к. мы хотим посмотреть содержимое этой переменной окружения, а ни "исполнить" ее. В остальном анализ адекватный.
Еще можно использовать команды which kwrite и whereis kwrite.
« Последнее редактирование: 25.12.2022 12:08:01 от N0rbert »

dango_

  • Гость
Правильнее использовать echo $PATH , т.к. мы хотим посмотреть содержимое этой переменной окружения, а ни "исполнить" ее.
Спасибо за поправку. Именно echo нужно для вывода значения переменной. Исправил исходный текст.