首页 > 其他分享 >.bashrc改不改

.bashrc改不改

时间:2024-09-26 17:50:53浏览次数:4  
标签:profile 登录 改不改 bashrc Session var bash

.bashrc干什么

我们谈论的是Linux系统。Unix类系统也可以参考,但Windows系统就别看了。

如果我们用ls -a命令查看用户主目录下的文件,我们可以发现有4个带"bash"的文件:

  • .bashrc:非登录Session初始化时执行的配置。
  • .bash_profile:登录Session初始化时执行的配置。
  • .bash_logout:退出bash shell时运行的脚本。可能为空,也可能有一些内容。
  • .bash_history:bash输入命令的历史记录。

登录 Session 是用户登录系统以后,系统为用户开启的原始 Session,通常需要用户输入用户名和密码进行登录。

而非登录 Session 是用户进入系统以后,手动新建的 Session,这时不会进行环境初始化。比如,在命令行执行bash命令,就会新建一个非登录 Session。

当然,这里我说的都只是用户的配置文件,在加载用户的配置文件之间会先加载系统的配置文件。
更详细的知识见阮一峰Bash脚本教程

该不该直接改.bashrc

如果要加环境变量,网上一般是让改.bashrc。为什么?因为在.bash_profile里一般是引用了.bashrc的。

# .bash_profile

# Get the aliases and functions
if [ -f  ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PTAH="$PATH:$HOME/.local/bin:$HOME/bin"

export PATH

这也就带来了一个问题,如果直接改.bashrc,一旦改出了一些严重的问题,就可能导致无法登录的情况。所以不推荐直接改.bashrc

那么,有没有安全一点的方法?

更安全的方法

当然有,只不过可能有点麻烦。

不去修改.bashrc,而是把你需要的环境变量什么的写到一个新的文件里。每次需要运行的时候,source你新写的那个文件。

比如我需要加一些环境变量。那么我把环境变量写到一个叫作.mybashrc的全新的文件里。然后每次我登录的时候,就执行:

source .mybashrc

最安全,因为根本没有改.bashrc.bash_profile。而且如果你改的环境变量有问题,退出之后重新登录就好了。

只不过有点麻烦,因为每次登录都需要source一下。

鱼和熊掌不可兼得,要安全只能牺牲方便。

牺牲一小点安全的折中方法

注:对有一定能力的人:

有一个折中的方法,就是在.bash_profile里加入判断逻辑,每次登录时选择一下是否运行.bashrc。比如在.bash_profile末尾加入这些指令:

read -t 10 -p "10秒倒计时,是否载入.bashrc? [Y/n]: " var
var=${var:-"yes"}
if [[ ${var,,} == "yes" || ${var,,} == "y" ]]; then
    echo -e "载入中"
    source ~/.bashrc
else
    echo -e "取消载入"
fi

这样如果出问题,就有更改的余地。

tmux默认开启的是登录shell (login shell) ,可以通过在.tmux.conf文件里加入这条设置来改变:

set -g default-command bash

# 或者这条: 
set-option -g default-shell bash

(但你这不是需要改.bash_profile文件吗?

(所以这段只针对有一定能力的人

一些杂谈

bashrc中的rc是什么含义?

标签:profile,登录,改不改,bashrc,Session,var,bash
From: https://www.cnblogs.com/mitnick/p/18433984

相关文章

  • 【转载】ubuntu用户/linux用户登录后没有自动加载.bashrc
    版权声明:本文为CSDN博主「安安爸Chris」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/mimiduck/article/details/120041171今天遇到一个问题,linux下某用户登陆后无法加在其自身的.bashrc,通过source.bashrc发现......
  • bashrc和profile区别
    转载请注明出处:作用与目的:.bashrc:这个文件主要用于配置和自定义用户的终端环境和行为。每次启动新的终端时,.bashrc文件都会被执行,加载用户设置的环境变量、别名、函数等。这使得用户能够根据自己的喜好和需求来定制终端的行为和外观。profile(通常指的是~/.profile或/etc/prof......
  • .bashrc 给文件夹添加颜色
    .bashrc给文件夹添加颜色#~/.bashrc:executedbybash(1)fornon-loginshells.#see/usr/share/doc/bash/examples/startup-files(inthepackagebash-doc)#forexamples#Ifnotrunninginteractively,don'tdoanything[-z"$PS1"]&&r......
  • 定制和配置你的 shell 环境的一个强大工具——.bashrc
    本文结构:a、简单介绍b、操作示例c、注意事项a、当你在一个新的终端会话开始时,Bashshell会读取并执行.bashrc文件中的命令。这使得.bashrc成为定制和配置你的shell环境的一个强大工具。b、以下是一些.bashrc文件中常见的元素和它们的作用:1.别名(Aliases)  .bas......
  • linux中,使用alias, 应该在/etc/bashrc 中写,还是~/.bashrc中写,哪个更好
    在Linux中,可以在两个地方定义别名(alias):/etc/bashrc和~/.bashrc。它们各自有不同的作用和适用范围。/etc/bashrc:这个文件是系统级别的Bash配置文件,适用于所有用户。如果在该文件中定义别名,那么所有登录到系统的用户都可以使用这些别名。通常,系统管理员会在这里定义一些广......
  • Bash命令 - .bashrc配置
    .bashrc配置命令别名#gitalias#============================================aliasgs='gitstatus'#============================================aliasgss='gitstash'aliasgsl='gitstashlist'aliasgsa='gitstashapply�......
  • .bashrc内容丢失
    误删.bashrc文件,或吴用>清空了.bashrc文件。注意:不要关闭任何窗口,不要关机!!!注意:不要关闭任何窗口,不要关机!!!注意:不要关闭任何窗口,不要关机!!!关闭,就真找不回来了。以下步骤,尽量在执行错误命令前,打开的终端窗口操作,因为这些窗口打开时加载过.bashrc1.先复制初始部......
  • 快速将anaconda添加到环境变量(.bashrc)的方法
    在Linux中通过bashAnaconda3-2021.05-Linux-x86_64.sh安装完anaconda之后,如果忘记将anaconda添加到.bashrc中,如#Allrequestedpackagesalreadyinstalled.installationfinished.DoyouwishtheinstallertoinitializeAnaconda3byrunningcondainit?[yes|no][n......
  • /etc/profile 和 ~/.bashrc的区别
    /etc/profile和~/.bashrc是两个不同的文件,它们在环境变量设置和启动脚本方面扮演着不同的角色。/etc/profile:/etc/profile是系统级别的配置文件,用于设置全局的环境变量和执行系统范围的初始化命令。当登录到系统时,会首先读取/etc/profile文件来加载系统的环境变......
  • .bashrc alias
    找到这个$HOME/.bashrc$HOME的意思是你的home目录,一般是/home/xxx/,xxx是你的登陆用户名.bashrc是个隐藏文件,可以在家目录下面用ls-a看到~/.bash_profile是交互式、login方式进入bash运行的~/.bashrc是交互式non-login方式进入bash运行的通常二者设置大致相同,所以通常前......