debian交互式外壳程序不调用.profile

阿基里斯

我刚刚安装了一个全新的debian buster:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster
$ cat /etc/profile
 [..]
if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

[...]
$ whoami 
zozo
$ su 
Password:
# id -u 
0
# printenv | grep -i ^path 
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

如果我以root身份运行:

  • # grep -i path /etc/profile.d/* 没有输出
  • # grep -i path ~/.profile 没有输出
  • # grep -i path ~/.bashrc 没有输出

在Debian系统上没有,~/.bash_profile也没有~/.bash_login

vi ~/.profile 
PATH="/usr/bin:/bin:/usr/sbin:/sbin"

但是问题仍然存在:

Ctrl+D返回普通用户

然后

$ su 
password: 

# printenv | grep -i ^path
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

因此,我进行了一些搜索:6.2 Bash启动文件

然后

if [ -z "$PS1" ];then echo NOT interactive shell ;else echo INteractive shell ;fi
INteractive shell

它说:

当Bash作为交互式登录外壳被调用时,它首先读取并执行/ etc / profile [...]。在[...]之后,它会寻找[/]〜/ .profile ...

所以我想知道为什么它不能PATH~/.profile~/.profile不被调用/加载)加载。当然,如果我将其放入~/.bashrc,它会起作用。

因此,最后,默认情况下,没有基本命令(如关机或重新启动)的路径。

此外,我意识到存在诸如之类的工具systemctl,本质上是一个管理命令,/usr/bin而不是/sbin/usr/sbin(以及许多其他管理命令,如getfaclsetfacl...,但这是另一个问题)。

我应该在这里错过一些东西。

chi地

只有登录shell读取/etc/profile~/.profile

您可以通过致电进行检查echo $0

如果输出以减号(例如-bosh开头,则为登录shell。

因此,一个好主意是注销并在更改后再次登录 /etc/profile

文件喜欢/etc/sh.shrc/etc/bash.bashrc或者他们在$ HOME同行被读取任何交互的shell,不仅登录shell。

由于您的外壳不是登录外壳,因此您应该尝试找出发生这种情况的原因。如果您通过ssh或从文本控制台登录,而您的外壳未标记为登录外壳,则绝对应针对发行版进行错误报告。

正确的X11环境,开始与新创建的shell窗口所有shellargv[0]开头-,为此,这种贝壳自认作为登录shell。如果您没有遇到这种情况,则您的X11环境可能已损坏。

如果您使用启动超级用户会话su,则这绝对不会启动登录shell。如果您希望这样的外壳表现得像登录外壳一样,请调用:

su -

你有尝试过吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP交互式外壳程序启动

来自分类Dev

在交互式shell中找不到〜/ .bash_profile中的函数

来自分类常见问题

登录外壳程序和交互式外壳程序有什么区别?

来自分类Dev

登录外壳程序使用什么方法读取/ etc / profile?

来自分类Dev

体面的交互式TCL外壳

来自分类Dev

Apache Kafka的交互式管理外壳

来自分类Dev

以编程方式启动交互式外壳

来自分类Dev

Apache Kafka的交互式管理外壳

来自分类Dev

体面的交互式TCL外壳

来自分类Dev

通过命名管道的交互式外壳

来自分类Dev

是否可以启动交互式长生不老药外壳并立即调用函数?

来自分类Dev

如何在tclsh交互式外壳程序(Ubuntu 14.04)中使用左右箭头键?

来自分类Dev

$ SHELL环境变量仅适用于交互式外壳程序吗?

来自分类Dev

启动交互式外壳程序作为异步过程(信号传递)

来自分类Dev

是否可以读取由交互式外壳程序提供的文件的内容?

来自分类Dev

Debian中的/ etc / profile文件来自哪里?

来自分类Dev

.profile不在Debian Wheezy LXDE中提供

来自分类Dev

如何在外壳中向.bash_profile / .profile / bashrc添加功能?

来自分类Dev

区分交互式登录和非交互式非登录外壳

来自分类Dev

我可以在不调用 .profile 的情况下通过 SSH 进入我的帐户吗?

来自分类Dev

从交互式go cli终止外壳管道

来自分类Dev

在非交互式外壳中运行脚本?

来自分类Dev

获得非交互式外壳的“ top”输出

来自分类Dev

是否有可能存在非交互式的登录外壳?

来自分类Dev

交互式外壳是什么意思?

来自分类Dev

是否有非交互式登录外壳?

来自分类Dev

为命令创建交互式外壳

来自分类Dev

是否有可能是非交互式的登录外壳?

来自分类Dev

“每个交互式外壳”是什么意思?

Related 相关文章

  1. 1

    PHP交互式外壳程序启动

  2. 2

    在交互式shell中找不到〜/ .bash_profile中的函数

  3. 3

    登录外壳程序和交互式外壳程序有什么区别?

  4. 4

    登录外壳程序使用什么方法读取/ etc / profile?

  5. 5

    体面的交互式TCL外壳

  6. 6

    Apache Kafka的交互式管理外壳

  7. 7

    以编程方式启动交互式外壳

  8. 8

    Apache Kafka的交互式管理外壳

  9. 9

    体面的交互式TCL外壳

  10. 10

    通过命名管道的交互式外壳

  11. 11

    是否可以启动交互式长生不老药外壳并立即调用函数?

  12. 12

    如何在tclsh交互式外壳程序(Ubuntu 14.04)中使用左右箭头键?

  13. 13

    $ SHELL环境变量仅适用于交互式外壳程序吗?

  14. 14

    启动交互式外壳程序作为异步过程(信号传递)

  15. 15

    是否可以读取由交互式外壳程序提供的文件的内容?

  16. 16

    Debian中的/ etc / profile文件来自哪里?

  17. 17

    .profile不在Debian Wheezy LXDE中提供

  18. 18

    如何在外壳中向.bash_profile / .profile / bashrc添加功能?

  19. 19

    区分交互式登录和非交互式非登录外壳

  20. 20

    我可以在不调用 .profile 的情况下通过 SSH 进入我的帐户吗?

  21. 21

    从交互式go cli终止外壳管道

  22. 22

    在非交互式外壳中运行脚本?

  23. 23

    获得非交互式外壳的“ top”输出

  24. 24

    是否有可能存在非交互式的登录外壳?

  25. 25

    交互式外壳是什么意思?

  26. 26

    是否有非交互式登录外壳?

  27. 27

    为命令创建交互式外壳

  28. 28

    是否有可能是非交互式的登录外壳?

  29. 29

    “每个交互式外壳”是什么意思?

热门标签

归档