Linux Shell 核心知识点梳理|进程、运行模式、内建命令historyalias实操

发布时间:2026/7/7 12:39:13
Linux Shell 核心知识点梳理|进程、运行模式、内建命令historyalias实操 一、前言本文基于Xshell实操环境完整覆盖Shell类型、进程父子关系、运行模式、内/外部命令区分、 history 与 alias 实操包含概念解析、命令参数、操作截图说明搭建完整Shell知识体系。二、Shell的类型1. 概念Shell是用户与Linux内核之间的命令解释器接收用户指令并传递给内核执行不同Shell语法、内置指令存在差异。2. 主流分类表格Shell类型 特点 系统默认bash 兼容sh功能最全支持别名、历史命令、脚本拓展 CentOS、Ubuntu默认sh 最初UNIX标准Shell功能极简 仅兼容使用zsh 高度自定义补全、主题强大 运维/开发常用csh/tcsh C语言风格语法语法与bash差异大 极少默认实操命令Xshell执行截图说明执行 cat /etc/shells 会输出系统内置解释器列表 echo $SHELL 输出 /bin/bash 。三、理解Shell进程及其关系1. 核心概1. 登录Xshell时系统创建登录Shell进程父进程PID2. 在Shell中执行命令/新开子Shell会生成子进程3. 父进程销毁时未退出的子进程会变为孤儿进程由systemd收养。2. 实操查看进程实操演示1. 先执行 echo $$ 记录当前PID​2. 输入 bash 开启子Shell再次 echo $$ 得到新PID3. pstree 可直观看到父bash下挂载子bash进程。四、Shell的父子关系1. 父Shell vs 子Shell规则1. 执行 bash 、 zsh 、运行 .sh 脚本时会生成子Shell2. 子Shell会复制父Shell环境变量但子Shell内部修改变量、别名不会回传给父Shell3. exit 命令仅退出当前所在的Shell层级。实操验证结论子进程环境隔离无法修改父Shell数据。五、Shell的运行模式分为交互式Shell、非交互式Shell两类1. 交互式Shell日常Xshell登录特征输入命令、回车执行有命令提示符 [rootlocalhost ~]# 加载配置文件登录交互式读 /etc/profile → ~/.bash_profile 普通交互式读 ~/.bashrc 。2. 非交互式Shell执行脚本 sh xxx.sh 特征无交互提示符批量执行脚本内命令​仅加载 BASH_ENV 指定配置不读取登录配置。补充登录Shell / 非登录Shel登录Shell远程Xshell登录、本地账号登录完整加载系统全局配置​非登录Shell终端内输入 bash 新开窗口仅加载用户本地bashrc。实操区分六、内建命令和外部命令1. 概念区分1. 内建命令内置命令集成在bash程序内部执行不创建子进程速度快如 cd、history、alias、exit、echo 。​2. 外部命令独立可执行文件存放在 /bin /usr/bin 执行会fork子进程如 ls、cat、pwd 。区分实操命令核心差异总结表格维度 内建命令 外部命令进程 不创建子进程 创建子进程速度 执行更快 磁盘读取较慢示例 cd、history、alias cat、ls、mkdir七、内建命令history用法详解配套课后习题1. 基础概念history 是bash内置命令记录当前会话所有执行过的命令文件 ~/.bash_history 持久存储历史命令会话未退出时内存记录不会同步写入文件。核心参数实操课后习题实操对比习题1 history 和 cat ~/.bash_history 输出区别1. 新开Xshell输入若干命令直接执行 history 显示本次会话所有命令历史文件命令内存完整记录2. 执行 cat ~/.bash_history 仅显示上一次会话结束前保存的命令当前窗口新输入命令不会出现原因会话运行时新命令只存在内存关闭终端/执行 history -w 才写入文件。习题2执行 history -w 后再次ca文件执行 history -w 强制把内存所有命令写入 .bash_history 此时 cat ~/.bash_history 输出内容与 history 完全一致。快捷调用技巧八、内建命令alias用法详解1. 概念alias 用于给长命令设置自定义别名简化输入属于Shell内建命令子Shell无法继承临时别名写入 ~/.bashrc 可永久生效。核心参数实操永久别名配置实操1. 编辑配置文件2. 文件末尾添加自定义别名3. 重载配置生效无需重启终端注意事项临时别名新开子Shell/重连终端就失效​永久别名写入bashrc后所有交互式Shell自动加载。