ubuntu (Kubuntu) PATH相关脚本启动顺序

环境:

ubuntu 12.04 + KDE + zsh

在Linux中如何修改PATH变量这个网上资料很多,本文简单介绍一下Kubuntu下PATH是如何构造出来的。

当默认使用kde作为启动桌面时,kdm会读取其配置文件/etc/kde4/kdm/Xsession,笔者机器上该脚本内容如下:

#! /bin/sh
# Xsession - run as user

session=$1

# Note that the respective logout scripts are not sourced.
case $SHELL in
  */bash)
    [ -z "$BASH" ] && exec $SHELL $0 "$@"
    set +o posix
    [ -f /etc/profile ] && . /etc/profile
    if [ -f $HOME/.bash_profile ]; then
      . $HOME/.bash_profile
    elif [ -f $HOME/.bash_login ]; then
      . $HOME/.bash_login
    elif [ -f $HOME/.profile ]; then
      . $HOME/.profile
    fi
    ;;
  */zsh)
    [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@"
    emulate -R zsh
    [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc
    zhome=${ZDOTDIR:-$HOME}
    # zshenv is always sourced automatically.
    [ -f $zdir/zprofile ] && . $zdir/zprofile
    [ -f $zhome/.zprofile ] && . $zhome/.zprofile
    [ -f $zdir/zlogin ] && . $zdir/zlogin
    [ -f $zhome/.zlogin ] && . $zhome/.zlogin
    setopt shwordsplit noextendedglob
    ;;

...(省略)...
esac

# invoke global X session script
. /etc/X11/Xsession

可以看出,如果shell为bash,则首先加载

  1. /etc/profile

    1. . /etc/bash.bashrc
  2. $HOME/.bash_profile

  3. $HOME/.bash_login

  4. $HOME/.profile
    1. HOME/.bashrc

在ubuntu12.04上,$HOME/.bash_profile与 $/HOME/.bash_login都不存在。

如果将zsh作为默认shell,其脚本加载路径为/etc/zsh/zprofile,$HOME/.zprofile,$HOME/zlogin,$HOME/.zlogin

遗留的问题:默认shell为zsh时,没有去加载etc/profile以及$HOME/.profile?但是在.profile中添加echo命令却会被打印出来,这是为什么呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值