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

Linux Shell基础知识点总结与实操演示

一、文章概述
本次实操围绕Linux Shell基础完整知识点展开,包含Shell类型、Shell进程父子关系、Shell运行模式、内建命令与外部命令区分、history历史命令、alias自定义别名六大学习模块。所有命令均在Xshell连接Ubuntu虚拟机环境完成实操演示,梳理完整知识框架,记录每一步操作与运行结果,清晰展示各指令的功能、参数使用效果。

二、Shell相关基础概念
(一)Shell的类型
Shell是用户与Linux系统内核之间的交互媒介,主要作用是解析用户输入的命令,将指令传递给内核完成执行操作。主流Shell分为以下几类:
第一,sh,最早的标准Shell,兼容性广泛,但功能较为简单;
第二,bash,Linux系统默认使用的Shell,完全兼容sh所有语法,额外拓展历史命令、自定义别名等实用功能,本次实操全程使用bash;
第三,zsh、csh,属于拓展类Shell,多用于开发、运维专业场景。

(二)Shell进程及其父子关系
每打开一个全新的终端窗口,操作系统会创建独立的bash父进程。当我们在终端执行程序、括号包裹命令、运行脚本文件时,系统会生成对应的子Shell进程。
进程存在固定层级规则:父进程关闭结束时,其创建的全部子进程会同步销毁;子进程无法修改父进程的环境变量、自定义别名、内存内的历史命令记录。
我们可以使用ps --forest命令以树形结构打印系统进程,能够直观观察bash父进程与ps子进程的层级关系。配套快捷指令!!,可以直接重复执行上一条输入的命令。

(三)Shell的运行模式
Shell分为交互式Shell与非交互式Shell两种运行模式。
交互式Shell就是我们日常手动打开终端窗口,逐行手动输入命令,系统实时输出执行结果,界面带有$命令提示符;
非交互式Shell不会弹出交互窗口,在运行.sh脚本文件时自动启动,仅批量执行脚本内部预先写好的代码。

(四)内建命令和外部命令
内建命令直接集成在bash程序内部,执行时不会创建子进程,运行速度更快,常见指令包含history、alias、cd、pwd等。
外部命令是独立的可执行文件,存放于系统/usr/bin目录下,运行外部命令时系统会自动生成子进程,ls、cat都属于外部命令。
我们可以通过type指令区分命令类型,输入type pwd、type ls即可对比两者差异。

三、内建命令history 详解实操

  1. 核心概念
    history命令专门用于记录终端窗口所有执行过的指令,历史命令会持久保存在家目录下的隐藏文件.bash_history中。

  2. 实操1:对比history 与 cat .bash_history
    history指令读取当前终端内存内全部历史命令,自带数字行号,包含本次登录后新输入的所有指令;
    cat .bash_history仅读取硬盘存储的历史文件,无法读取当前终端刚输入、还未保存缓存的新命令。
    执行指令为history、cat .bash_history。

  1. 实操2:history -a 参数作用
    history -a参数功能:将当前终端内存中新执行的全部命令,立刻追加写入.bash_history历史文件。执行完成后再次读取文件,之前缺失的本次操作指令会全部保存到文件中。
    配套执行指令为history -a、cat .bash_history。

  1. 历史命令快捷调用方法
    第一种!!,一键重复执行上一条输入的命令;
    第二种!数字,调取历史记录对应行号的命令直接运行。
    完整实操流程:输入pwd打印当前目录,使用history | grep pwd筛选所有pwd相关历史记录,输入!加查询到的行号复用历史命令。

  1. 补充history常用参数
    history -c:清空当前终端内存中存储的历史记录;
    history -w:手动将内存内所有历史命令写入历史文件;
    history n:仅展示最后n条历史指令。

四、内建命令alias自定义别名实操

  1. 概念
    alias是Shell内建命令,作用是给冗长复杂的命令设置简短自定义别名,简化重复输入操作。通过alias创建的别名仅在当前终端窗口生效,关闭终端后自动失效;别名仅作用于当前Shell进程,不会影响其他终端窗口。

  2. 查看系统全部别名
    执行指令alias -p,运行后打印系统预设的全部别名,包含ll、la、ls等系统自带简写命令。

  1. 创建自定义别名
    alias标准语法格式:alias 别名=‘完整原始命令’,等号两侧不能添加空格,引号必须使用英文单引号。
    本次实操创建ls -li的简写别名li,完整创建指令:alias li=‘ls -li’。
    创建完成后再次执行alias -p,列表内会新增li别名;直接输入li即可执行ls -li,查看文件完整属性信息。
    整套实操指令:alias li=‘ls -li’、alias -p、li。

  2. 别名删除指令
    unalias li:单独删除自定义创建的li别名;
    unalias -a:一次性清空当前终端全部自定义别名。

五、整体知识框架总结

  1. Shell基础内容:Shell定义、常见分类、交互式与非交互式两种运行模式;
  2. Shell进程相关:父子进程生成规则,使用ps --forest查看进程树结构;
  3. 命令分类:内建命令(history、alias、cd等)、外部命令(ls、cat等);
  4. history命令使用:查看历史记录、-a参数缓存写入、!!与!数字快速调用历史指令;
  5. alias别名工具:自定义别名创建、查看系统别名、删除自定义别名。

六、实操总结
本次文章内所有操作均通过Xshell远程连接Ubuntu虚拟机完成,全部命令手动输入并验证运行效果。history命令能够快速调取过往执行指令,大幅提升操作效率;alias别名可以简化复杂长命令的输入流程。Shell父子进程、内外命令区分是Linux命令运行底层核心知识,在日常操作、Shell脚本编写、服务器运维场景中都会高频使用。文中所有操作截图严格按照标注位置依次插入,完整记录每一条命令的输入过程与对应运行输出结果。

http://www.jsqmd.com/news/1145846/

相关文章:

  • 揭秘DrawDB:重新定义数据库建模体验的现代解决方案
  • 串口调试方法
  • 耐达讯自动化EtherNet/IP转DeviceNet网关:功能、参数与配置,看这一篇就够了!
  • -python-LangGraph框架(3-34-LangGraph循环实战)
  • 从硬编码到 .env 与 pydantic_settings 类,连路由用法都给你捋清楚
  • Linux服务器SSH安全实战:从sshd:notty日志分析到自动化封禁
  • Vibe Coding学习(3)--Skills
  • 湖南省内汉王品牌官方授权总代理是哪家企业?
  • RuoYi v4.6.0 SQL注入漏洞CVE-2023-49371:从POC到代码审计的3步深度分析
  • VLA模型文本扰动导致自动驾驶失控的机理与防御
  • 华硕笔记本终极性能优化指南:GHelper轻量级控制工具完全教程
  • 手把手教你学pcie--Vendor ID / Device ID / Class Code(设备的“三件套”)
  • 国产清洁机器人海外卖爆了:为什么电池系统越来越关键?
  • ONNX模型优化终极指南:3种方法快速简化计算图提升推理性能
  • ARIMA 模型参数 (p,d,q) 定阶实战:基于AIC/BIC与ACF/PACF的2种方法对比
  • 解析 CVE-2026-46244 IPv6 防火墙绕过漏洞:底层成因与望获 OS 网络安全防护实践
  • 2026年,靠谱私域工具究竟藏在哪?一文为你揭秘!
  • 3个关键步骤掌握猫抓cat-catch:如何高效嗅探和下载网络媒体资源?
  • AD无法铺上铜皮
  • STM32 I2C 通信 HAL 库踩坑记录
  • 支持Gemini 4K绘图的多模型API中转服务BananaRouter简介
  • 2026OpenClaw企业搭建哪家好:七类商业发行版实测对比企业选型参考指南
  • 底解决大模型 JSON 报错:提示词 + 硬约束 + 兜底的全链路修复方案
  • 5种实战方法:如何高效优化ONNX模型部署性能
  • A3910与PIC18F87J50在电机控制中的协同应用
  • 2026年精选AI写作辅助平台榜单(高分定稿版)
  • GHelper完整指南:华硕笔记本轻量控制工具,告别臃肿的终极方案
  • 3种NLP特征提取方案对比:TF-IDF、Word2Vec、BERT在快手登录参数提取中的效果
  • TPD2015FN与PIC32MZ构建高可靠性工业负载控制系统
  • 同济/南大/浙软 2024保研考核:5场机试题型分析与3类面试问题拆解