尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Linux Shell全面学习实操总结

Linux Shell全面学习实操总结
📅 发布时间:2026/7/7 6:07:33

这次小学期围绕Shell完成了整套学习与实操,全程在Xshell远程连接Linux环境完成所有命令测试,把Shell相关的基础概念、进程关系、运行模式、命令分类都梳理清楚,也整理了完整实操过程与对应的现象,方便后续复盘回顾。Shell本身是用C语言编写的程序,相当于我们和Linux操作系统内核沟通的桥梁,它不只是平时敲命令交互的工具,还能作为编程语言编写后缀为.sh的脚本文件,脚本第一行一般会写上#!/bin/bash,这个特殊标识用来告诉系统使用bash解释器运行脚本,换成#!/bin/sh在多数场景下也能正常使用,甚至还能替换成python的解释器路径执行其他类型脚本。Linux系统里能使用的Shell种类并不单一,常见的有sh、bash、csh、ksh、dash等,其中bash是绝大多数发行版默认使用的Shell,用户登录终端时自动启动的Shell类型由/etc/passwd文件控制,文件每行的第七个字段记录了对应账号的默认解释器,输入cat /etc/passwd | grep 自己用户名就能查看配置,也可以用ls -LF /bin/*sh浏览系统内全部可用Shell程序,想要临时切换其他Shell直接输入对应程序路径即可,比如/bin/dash,执行exit就能切回上一层Shell。

登录终端后自动启动的交互Shell称为父Shell,只要在命令行输入bash,系统就会生成全新的子Shell,重复执行bash会形成多层嵌套的子进程结构,想要直观查看进程之间的父子嵌套关系可以使用ps --forest命令,输出内容里PID代表进程编号,PPID记录当前进程的父进程编号,每执行一次exit就会逐层关闭子Shell,回到上一级父进程。我们可以借助环境变量$BASH_SUBSHELL判断当前是否处于子Shell环境,变量输出数字为0代表没有新建子Shell,数值大于0则代表存在子Shell,数字大小对应嵌套层级,用分号分隔多条命令顺序执行不会创建子Shell,输出变量值始终是0,如果把整套命令包裹在括号内执行,系统会单独生成子Shell运行括号里的内容,变量数值会变为1,多层括号嵌套数值还会继续增加。

Shell支持多种运行模式,日常最常用的后台模式只需要在命令末尾添加&符号,程序就会放到后台执行,不会占用当前终端输入权限,执行sleep 60 &这类测试命令后,jobs可以查看所有后台任务,ps -f能够查看系统完整进程列表,后台任务运行结束后按下回车,终端会自动打印任务完成提示,把带括号的进程列表放到后台运行,还能避免子Shell的输入输出绑定当前终端,适合执行耗时较长的批量操作。除了普通后台任务,Shell还提供coproc协程功能,同样会在后台创建独立子Shell执行命令,不指定名称时进程默认标识为COPROC,如果想要自定义协程名称要遵守固定语法,花括号前后、命令末尾分号后方都必须保留空格,标准写法为coproc 自定义名称 { 执行命令; },运行后搭配jobs -l可以查看协程进程详细信息。

Linux里所有命令分为内建命令和外部命令两类,外部命令是独立存放在/bin、/usr/bin等目录下的可执行文件,像ps就属于典型外部命令,执行外部命令时系统会通过fork创建全新子进程,会产生一定性能开销,我们可以用which或者type -a查询外部命令存放路径,which指令只能检索磁盘上的外部程序,无法识别Shell内置指令。内建命令直接编译集成在Shell程序内部,运行时不需要新建子进程,执行速度更快,cd、exit都是纯内置命令,echo、pwd比较特殊,同时存在内置版本和外部程序版本,输入type -a 命令名可以完整展示一条命令的所有实现形式,清晰区分内置与外部程序。

history是非常实用的内置命令,能够记录终端所有输入过的指令,所有操作记录先临时存放在内存中,只有关闭终端、执行exit退出当前Shell会话时,内存里的记录才会写入用户家目录下的隐藏文件.bash_history,直接用tail查看这个文件,只能看到上一次会话结束前保存的命令,而history读取内存,会展示当前终端全部实时输入内容,两者输出内容会存在明显差异,执行history -a可以强制把内存里的全部历史命令写入文件,执行完成后再次读取.bash_history,文件内容就会和history输出完全同步。同时history支持快捷调用历史指令,输入!!可以直接执行上一条命令,!加上命令编号就能调取对应序号的历史操作,搭配history | grep 关键词还能快速筛选需要的历史记录。

alias也是高频使用的内置命令,核心作用是给冗长的常用命令自定义简短别名,减少重复输入,输入alias -p能够查看系统预先配置好的全部别名,系统自带ll、la、ls等简化指令,ll等价于ls -alF,还自带彩色输出参数方便查看文件信息,自定义别名语法为alias 别名=‘完整命令及参数’,比如alias myls=‘ls -li’,创建完成后直接输入自定义名称就能执行对应命令,需要注意别名仅在当前Shell会话内生效,切换新终端或者新建子Shell后,自定义别名会失效,不会影响其他用户的Shell配置。

整套实操全部在Xshell环境完成,每一类知识点都配套对应的操作指令与运行截图,把Shell类型、父子进程、运行模式、内外命令区分、history和alias两个核心内置命令的用法完整串联起来,搭建起清晰的知识框架,每条命令都标注了对应的用途和关键参数作用,也完成了课程要求的history对比实验,先观察history与.bash_history输出差异,再执行history -a对比文件内容变化,所有实操内容整合后整理成这篇学习记录,满足本次课程作业的全部要求,后续只需要把文章发布到CSDN,提交文章链接即可完成作业。

相关新闻

  • 如何免费高效下载全网音乐:开源工具MusicDownload完整指南
  • Vidu S1:全球领先的实时交互模型
  • 8G显存本地部署AI漫剧生成:从Stable Diffusion到视频合成全流程

最新新闻

  • 匿名类·学习笔记
  • okbiye AI|开题报告一键智能生成,告别熬夜卡壳,搞定规范合格开题文稿
  • 薄膜分选的困境与突围:高光谱助力从混合垃圾到纯净再生资源
  • 新手小号选购指南!3种学习场景对号入座,高口碑型号推荐
  • 5款录音转文字工具测评:专业场景转写效率对比
  • Excel-to-JSON本地化Excel插件发布 - 在Excel中安全离线转换数据

日新闻

  • Android逆向分析全能助手:集成化工具链与自动化工作流设计
  • 面搜索(Faceted Search)原理与工程实践指南
  • 神经网络调参避坑指南:从5个常见Loss曲线形态定位超参数问题

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号