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

shell脚本控制——使用新的shell启动脚本

如果每次用户启动新的bash shell时都能运行相关的脚本(哪怕是特定用户启动的bash shell),那将会非常方便,因为有时候你希望为shell会话设置某些shell特性,或者希望已经设置了某个文件。

这时可以回想一下当用户登录bash shell时要运行的启动文件。另外别忘了,不是所有的发行版都包含这些启动文件。基本上,以下所列文件中的第一个文件会被运行,其余的则会被忽略。

  • $HOME/.bash_profile
  • $HOME/.bash_login
  • $HOME/.profile

因此,应该将需要在登录时运行的脚本放在上述第一个文件中。

每次启动新的shell,bash shell都会运行.bashrc文件(一般而言,用户登录时会运行从$HOME/.bash_profile、$HOME/.bash_login或$HOME/.profile中找到第一个文件,而$HOME/.bashrc则是由非登录shell运行的文件)。对此进行验证,可以使用这种方法:在主目录下的.bashrc文件中加上一条简单的echo语句,然后启动一个新shell。

$ cat $HOME/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific environment
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
export PATH

# Uncomment the following line if you don't like systemctl's autopaging feature:

# export SYSTEMD_PAGER=

# User specific aliases and functions
echo "I'm in a new shell!"
$
$ bash
I'm in a new shell!
$
$ exit
exit
$

.bashrc文件通常也借由某个bash启动文件来启动,因为.bashrc文件会运行两次:一次是当用户登录bash shell时,另一次是当用户启动bash shell时。如果需要某个脚本在两个时刻都运行,可以将其放入该文件中。


http://www.kler.cn/a/540405.html

相关文章:

  • 操作教程丨使用1Panel开源面板快速部署DeepSeek-R1
  • git rebase 和 git merge的区别
  • 每日一题——没有重复项数字的全排列
  • Java企业电子招投标系统:Spring Cloud微服务架构-强化企业招采竞争力:电子化招投标平台助力效率与成本控制-支持二次开发
  • Nutz Dao与Spring集成
  • C++ 继承(1)
  • DFS+回溯+剪枝(深度优先搜索)——搜索算法
  • 保姆级教程Docker部署Zookeeper模式的Kafka镜像
  • 服务的端口号大全(Complete List of Service Port Numbers)
  • 使用 AlexNet 实现图片分类 | PyTorch 深度学习实战
  • Elasticsearch:在 Elastic 中玩转 DeepSeek R1 来实现 RAG 应用
  • 2025年前端面试题~ 【前端面试】更新
  • 单张照片可生成写实3D头部模型!Adobe提出FaceLift,从单一的人脸图像中重建出360度的头部模型。
  • 【大模型】本地部署DeepSeek-R1:8b大模型及搭建Open-WebUI交互页面
  • 高级加密标准AES候选算法之一CAST-256
  • 驱动开发系列36 - Linux Graphics 2D 绘制流程
  • STC 51单片机62——极简 4x4x4光立方
  • 2025上半年还可以参加那些数学建模竞赛?
  • 使用css3锥形渐变conic-gradient实现有趣样式
  • 基于 Git、Jenkins 和 Docker 的自动化持续集成与部署实践
  • 【Elasticsearch】集群配置性能优化
  • D3实现站点路线图demo分享
  • 【Deepseek】本地部署Deepseek
  • C# OpenCV机器视觉:对位贴合
  • 【开源免费】基于SpringBoot+Vue.JS校园网上店铺系统(JAVA毕业设计)
  • QNX800 run in Raspberry Pi