shell
什么是shell

Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行
shell 也被称为LINUX 的命令解释器(command interpreter)
shell 是一种高级程序设计语言
bash shell
GNU Bourne-Again Shell(bash) 是GNU计划中重要的工具软件之一,目前也是 Linux 标准的shell ,与sh兼容
CentOS 默认使用
显示当前使用的shell
echo ${SHELL}
显示当前系统使用的所有shell
cat /etc/shells
cat连续的将文件内容显示到屏幕上
-n: 由1开始对所有输出的行数编号;
-b: 打印行号,只不过对于空白行不编号;
-s: 当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A: 显示不可打印字符,行尾显示“$”;
-e: 等价于"-vE"选项;
-t: 等价于"-vT"选项;
-E: 显示行结束符
-T: 显示制表符
-v: 显示其他的非打印字符
bash的配置文件
按生效范围划分,存在两类:
全局配置:
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
个人配置:
~/.bash_profile
~/.bashrc
bash中Profile和bashrc的配置作用
按功能划分,存在两类:
profile 类和bashrc类
profile 类:
为交互式登录的shell 提供配置
全局:/etc/profile,/etc/profile.d/*.sh
个人:~/.bash_profile
功用:
用于定义环境变量
运行命令或脚本
bashrc 类:
为非交互式和交互式登录的shell 提供配置
全局:/etc/bashrc
个人:~/.bashrc
功用:
定义命令别名和函数
定义本地变量
配置文件的生效方式
修改profile和bashrc文件后可以通过以下来生效
重启shell进程
或者 source
shell 登录两种方式
交互式登录:
直接通过终端输入账号密码登录
使用“su - UserName” 切换的用户
执行顺序:/etc/profile --> /etc/profile.d/*.sh -->~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非交互式登录:
su UserName
图形界面下打开的终端
执行脚本
任何其它的bash 实例
执行顺序: ~/.bashrc --> /etc/bashrc -->/etc/profile.d/*.sh
用户登录前的提示的配置文件
/etc/issue
用户登录后提示的配置文件
/etc/motd
bash中的退出时的任务
保存在~/.bash_logout 文件中,每个用户可有自己单独的任务,在退出登录的shell是运行。
一般是用于创建自动备份和清楚临时文件
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 2025成都.NET开发者Connect圆满结束
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 用一种新的分类方法梳理设计模式的脉络