首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash.bashrc并不适用于所有用户

bash.bashrc并不适用于所有用户
EN

Ask Ubuntu用户
提问于 2020-11-30 20:08:52
回答 1查看 1.5K关注 0票数 0

因此,当我在/etc/bash.bashrc文件中添加行alias abc='echo Hello'并重新登录时,我的PC上有两个用户,只对第一个用户有效。(我修改了文件)我甚至重新启动了我的电脑,但仍然没有工作。

这是我的bash.bashrc文件(我知道这不是必要的,只是为了提供更多信息):

代码语言:javascript
复制
alias abc='echo Hi' # <<< Here's the line I've added



# System-wide .bashrc file for interactive bash(1) shells.

# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
#    ;;
#*)
#    ;;
#esac

# enable bash completion in interactive shells
#if ! shopt -oq posix; then
#  if [ -f /usr/share/bash-completion/bash_completion ]; then
#    . /usr/share/bash-completion/bash_completion
#  elif [ -f /etc/bash_completion ]; then
#    . /etc/bash_completion
#  fi
#fi

# sudo hint
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
    case " $(groups) " in *\ admin\ *|*\ sudo\ *)
    if [ -x /usr/bin/sudo ]; then
    cat <<-EOF
    To run a command as administrator (user "root"), use "sudo ".
    See "man sudo_root" for details.
    
    EOF
    fi
    esac
fi

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
    function command_not_found_handle {
            # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
           /usr/lib/command-not-found -- "$1"
                   return $?
                elif [ -x /usr/share/command-not-found/command-not-found ]; then
           /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
        else
           printf "%s: command not found\n" "$1" >&2
           return 127
        fi
    }
fi

我还运行着Xubuntu18.04.5LTS。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2020-12-01 03:43:55

如果用户的默认shell是bash,那么/etc/bash.bashrc来源于/etc/profile。默认shell设置在该用户行的/etc/passwd文件的最后一个字段中。如果使用另一个shell,如/usr/bin/sh,那么/etc/profile逻辑将跳过bash.bashrc的来源。使用usermod将默认的shell更改为bash:

代码语言:javascript
复制
usermod -s /bin/bash USER2
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1296484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档