当前位置: 首页 > news >正文

Linux:shell环境bash配置文件讲解(用户登录弹提示语的实现)


文章目录

  • 设置用户的 shell 环境配置文件:.bash_profile和.bashrc
    • ~/.bash_profile
    • ~/.bashrc
    • 连接 `~/.bash_profile` 和 `~/.bashrc`
  • 拓展:指定用户登录弹提示语
      • 步骤


设置用户的 shell 环境配置文件:.bash_profile和.bashrc

~/.bash_profile

  • 用途~/.bash_profile 是用户登录时执行的 shell 配置文件。通常用于设置一次性环境变量和启动程序(如设置 PATH、启动代理、运行初始化脚本等),这设置在用户登录时需要应用。

  • 作用时间:每次用户登录到系统时(通过终端或图形界面),~/.bash_profile 会被执行一次。包括登录到一个新的终端会话或 SSH 连接到服务器。

  • 常见内容

    • 环境变量设置(如 PATH
    • 启动程序(如 startxxinit
    • 用户欢迎消息
    • 其他只需执行一次的初始化操作
  • 示例

    # 设置 PATH
    export PATH=$PATH:/usr/local/bin# 启动自定义脚本
    if [ -f ~/scripts/startup.sh ]; then~/scripts/startup.sh
    fi# 显示欢迎消息
    echo "Welcome to your shell session!"
    

~/.bashrc

  • 用途~/.bashrc 是每次启动一个新的交互式非登录 shell 时执行的配置文件。主要用于设置需要在每个新的 shell 会话中应用的配置,如别名、函数、提示符等。

  • 作用时间:每次启动新的终端窗口或 tab 时(在图形界面下的终端程序中),~/.bashrc 会被执行。也适用于通过 source ~/.bashrc 手动加载配置。

  • 常见内容

    • 命令别名(如 alias ll='ls -la'
    • 自定义 shell 提示符(如 PS1
    • 定义 shell 函数
    • 设置 shell 选项(如 shopt
  • 示例

    # 设置别名
    alias ll='ls -la'
    alias gs='git status'# 自定义提示符
    PS1='[\u@\h \W]\$ '# 设置环境变量
    export EDITOR=vim

连接 ~/.bash_profile~/.bashrc

通常在 ~/.bash_profile 中会包含一行命令来加载 ~/.bashrc,确保每次登录时,~/.bashrc 中的配置也能生效:

# 如果存在 .bashrc,则执行它
if [ -f ~/.bashrc ]; thensource ~/.bashrc
fi

这样可以确保无论是登录 shell 还是非登录 shell,配置都能得到应用。

拓展:指定用户登录弹提示语

指定用户登陆时,以脚本的形式执行,弹出来提示语"欢迎你!“

提示:使用 ~/.bash_profile~/.bashrc 文件来实现。

步骤

  1. 创建脚本文件

    创建一个脚本文件 welcome.sh,并将其放在用户的主目录下。

    nano ~/welcome.sh
    

    将以下内容添加到 welcome.sh 文件中:

    #!/bin/bash
    echo "欢迎你!"
    

    保存并退出编辑器(在 nano 中,按 CTRL+X,然后按 Y,再按 Enter)。

  2. 赋予脚本执行权限

    赋予脚本文件执行权限,确保可以被执行:

    chmod +x ~/welcome.sh
    
  3. 编辑用户的登录脚本

    根据使用的 shell,编辑适当的登录脚本文件:

    • 对于 bash 用户,编辑 ~/.bash_profile~/.bashrc 文件。
    • 对于 zsh 用户,编辑 ~/.zshrc 文件。

    bash 为例:

    nano ~/.bash_profile
    

    在文件末尾添加以下行,每次用户登录时执行 welcome.sh 脚本:

    ~/welcome.sh
    

    保存并退出编辑器。

  4. 应用更改

    为了使更改立即生效,可以重新加载配置文件或重新登录。

    source ~/.bash_profile

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 算法刷题day28|动态规划:509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 【C语言】指针、多维数组零碎知识点
  • Linux 操作系统速通
  • 蒲公英G5-2250路由器之收集各种硬件的配置页面
  • 初见scikit-learn之基础教程
  • langchain调用讯飞星火大模型3.5和4
  • C++入门 | auto关键字、范围for、指针空值nullptr
  • dynamic-datasource+Mybatis多数据源使用
  • ctfhub Bypass disable_function
  • 论文辅导 | 基于概率密度估计与时序Transformer网络的风功率日前区间预测
  • 测试总结8/6
  • 08.SQL注入-下(超详细!!!)
  • 如何在SQLite中实现自动时间戳
  • 【C++ | 泛型编程】C++函数模板详解(定义、使用、特化、重载)
  • 工具学习_CONAN_Consuming Packages
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【Amaple教程】5. 插件
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Angular 响应式表单 基础例子
  • CSS 提示工具(Tooltip)
  • CSS魔法堂:Absolute Positioning就这个样
  • HashMap剖析之内部结构
  • If…else
  • mongo索引构建
  • PHP面试之三:MySQL数据库
  • Python学习之路16-使用API
  • Rancher如何对接Ceph-RBD块存储
  • SpiderData 2019年2月25日 DApp数据排行榜
  • SSH 免密登录
  • tab.js分享及浏览器兼容性问题汇总
  • Theano - 导数
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 闭包--闭包之tab栏切换(四)
  • 二维平面内的碰撞检测【一】
  • 试着探索高并发下的系统架构面貌
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • PostgreSQL之连接数修改
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 飞书APP集成平台-数字化落地
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #### go map 底层结构 ####
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (备忘)Java Map 遍历
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (转)菜鸟学数据库(三)——存储过程