Linux操作系统-shell编程之基础命令
一、SHELL简介Linux Shell种类非常多常见的SHELL如下Bourne Shell/usr/bin/sh或/bin/shBourne Again Shell/bin/bashC Shell/usr/bin/cshK Shell/usr/bin/kshShell for Root/sbin/sh不同的Shell语言的语法有所不同最常用的shell是Bash也就是Bourne Again Shell。我们为什么需要shell呢用户需要操作硬件硬件是通过内核驱动的但用户是不能操作内核的这时shell就起到一个用户和内核之间沟通的桥梁作用。用户可以输入shell命令执行又可以利用 Shell脚本编程去运行。Bash架构二、命令类型在Linux系统中命令可以分为两类内建命令Built-in Commands和外部命令External Commands。内建命令是由shell本身提供的而外部命令则是独立的程序通常存储在文件系统的某个目录下比如/bin、/usr/bin等。内建命令的执行速度通常比外部命令快因为它们不需要加载独立的程序。type: 查询是否为内建命令示例:type [指令]三、变量定义在 Linux Shell 中变量的本质是字符串。定义变量时等号两边不能有空格引用变量时需要在变量名前加上$符号。varname变量的规则变量与变量内容之间用连接且两边不能有空格数字不能作为变量名的开头变量内容若有空格可使用双引号或单引号将变量的内容连接起来。双引号内的特殊字符保留原有特性单引号内的特殊字符仅为普通字符可用跳脱字符\将特殊字符变成一般字符执行指令中借由其他指令提供信息时可用扩增变量内容时可用$变量名称累加内容或${变量名称}累加内容需要在其他子程序中执行export 变量名称将变量变成环境变量通常大写为系统变量小写为自定义变量取消变量unset 变量名称四、变量读取可以通过如下命令获取变量值。echo $变量名或echo ${变量名}五、变量类型Shell 变量根据其作用域和来源主要可分为四大类自定义变量、环境变量、位置变量和特殊变量。自定义变量由用户自行定义仅在当前 Shell 会话中有效子进程无法继承。定义时直接使用varvalue格式赋值。环境变量全局有效当前进程及其子进程均可访问。通过export varvalue设置常见的有PATH、HOME、USER等。位置变量在脚本传参时自动接收以$1、$2…$n形式表示其中$0为脚本名$#为参数个数。特殊变量由 Shell 内置不可手动赋值例如$$当前进程 PID、$?上一条命令的退出状态、$*和$所有参数。1、环境变量常用的环境变量有PATH、HOME、USER、PS1等PS1: 提示字符的设定\d 日期\H 完整主机名\h 主机名第一段\t 24小时时分秒\T 12小时时分秒\A 24小时时分\ 12小时am/pm\u 用户\V bash版本\w 完整工作目录\W 工作目录\# 第几条指令\$ 提示字符HOME: 用户的家目录PATH: 命令的查找路径从前往后查找如果没有找到输出“command not found”USER: 当前用户2、特殊变量$: 本shell的PID?: 上一个命令执行的回传值export: 环境变量示例:export 变量名称如上图echo $? #上一条命令的执行结果成功显示0非0则表示失败echo $$ #表示本shell的进程号varname #定义了一个变量export var #转换成一个环境变量bash #创建了一个子shell然后在子shell中可以获取到父shell的变量var的值因为在父shell中var被转换成了环境变量是用env可以查看环境变量。3、位置变量在执行脚本时通常使用./shell.sh name age score的形式命令执行脚本。$0: 表示脚本名称shell.sh$1:表示脚本执行的第一个参数$2:表示脚本执行的第二个参数。。。。。。$#表示为参数个数$: 表示所有参数每个参数是独立的$*: 表示所有参数所有参数作为一个整体。六、变量的输入、数组和声明read [-pt] variable示例:read -p please enter yes/no: -t 30 test-p: 给出提示信息-t: 设置超时时间declare:declare [-aixr] variable示例:declare -i sum1005050echo ${sum}数组:Var[index]content示例:var[0]aavar[1]bbvar[2]ccecho ${var[0]},${var[1]},${var[2]}七、语系设定‌Linux locale 就是系统用来决定显示什么语言、怎么排日期数字的一套规则‌。如果没有设置合适的编码可能会导致显示乱码问题。locale -alocaleLANGen_US.UTF-8LC_ALLen_US.UTF-8八、命令别名与历史命令alias, unalias:alias 别名命令 选项 #设置命令别名unalias 别名 #取消别名设定历史命令history [n]history [-c]history [-raw] histfiles!number#执行第多少条命令!command#执行包含command的命令!!#执行上一条命令九、Bash欢迎信息/etc/issue:\d: 本地端的日期\l: 第几个终端\m: 显示硬件的等级\n: 显示主机名称\O: 显示domain name\r: 作业系统的版本\t: 本地端时间\S: 作业系统名称\v: 作业系统版本/etc/motd:登陆后的提示信息十、Bash快捷键CtrlD #在空行时退出 ShellCtrlM #回车键EnterCtrlA #移动到命令行首CtrlE #移动到命令末尾CtrlU #冲当前光标位置删到行首CtrlK #从当前光标位置删到行尾十一、通配符*: 0到无穷个任意字符?: 匹配1个字符[]: 匹配括号内的一个字符[-]: 匹配范围内的一个字符[^ ]: 匹配非括号内的一个字符#: 注释\: 转义字符|: 管道符;: 连续下达多条命令~: 家目录$: 变量读取: 进程变成后台运行!: 逻辑运算非/: 目录符号, : 输出表示覆盖表示追加, : 输入: 单引号内为纯文字: 双引号内可有变量功能: 先执行命令(): 子shell起始与结束的组合{}: 中间为命令区块的组合十二、重定向, # 输出重定向表示覆盖表示追加。, # 输入重定向 将‌现有文件的内容‌作为命令的标准输入stdin替代键盘输入; 在命令行中直接定义‌多行文本块‌作为命令的输入直到遇到指定的结束标记如EOF。2, 2 #2‌覆盖模式将命令执行产生的‌错误信息‌重定向到指定文件。如果文件已存在会‌清空原内容并覆盖‌如果文件不存在则创建新文件;2‌追加模式将命令执行产生的‌错误信息‌重定向到指定文件的‌末尾‌。如果文件已存在内容会‌累加‌而不覆盖如果文件不存在则创建新文件。实例十三、连续执行多条命令;: 连续下达多条指令: 前一条指令执行成功才能执行后一条指令||: 前一条指令没有执行成功才能执行后一条指令十四、管道命令|: 前一个命令的输出作为后面命令的输入十五、截取命令cut -d 分隔字符 -f fields filename-d指定分割符号-f指定需要选取的字段十六、排序命令sort命令用于对文本文件内容进行排序-r逆序排序降序。-n按数值进行排序。-k 字段按指定的字段进行排序。该参数可指定多个字段使用逗号分隔。默认字段分隔符为制表符或空格。-t 分隔符指定字段的分隔符。-u去除重复行仅保留第一次出现的行。-f忽略大小写进行排序。-b忽略行首的空白字符进行排序。-c检查文件是否已经排好序如果未排序则输出第一个不符合排序顺序的行。-f忽略大小写进行排序。例如sort -f file.txt 将忽略行首字母的大小写进行排序。-b忽略行首的空白字符进行排序。-c检查文件是否已经排好序如果未排序则输出第一个不符合排序顺序的行。uniq是Linux中专门用来处理重复行的命令-c在每行前面添加该行在文件中出现的次数-d仅显示有重复的行-u仅显示没有重复的行-i在比较行时忽略字符大小写。wc命令用于统计文件中的字节数、字数、行数等-l:选项表示只统计行数-w:统计单词数-c:统计字节数举例统计地址列表中重复次数最多的前10个地址十七、其他命令双向重定向:tee -a file输出到文件和屏幕字符转换命令: tr/col/join/paste/expand分割命令: split本节介绍了一些shell命令的用法是shell编程的基础下一节将介绍shell文本处理“四剑客”grep、sed、awk、find。欢迎关注留言交流。

相关新闻

115网盘技术架构解析:150元2年VIP的分布式存储性价比

115网盘技术架构解析:150元2年VIP的分布式存储性价比

618大促即将结束,115网盘推出的150元锁定2年VIP会员活动引发广泛关注。作为技术从业者,我们更关心的是:在云存储服务层出不穷的今天,115网盘的技术架构是否值得信赖?长期订阅是否真的划算?今天我们就从技术…

2026/7/26 23:36:37 阅读更多 →
SmartRF04DK开发套件全解析:从射频测试到嵌入式编程实战

SmartRF04DK开发套件全解析:从射频测试到嵌入式编程实战

1. 从零上手:SmartRF04DK开发套件全解析如果你正在涉足低功耗无线通信领域,尤其是基于德州仪器(TI)CC1110或CC2510这类高度集成的射频片上系统(RF SoC),那么一块功能齐全、上手即用的开发套件无…

2026/7/26 23:36:37 阅读更多 →
别再踩坑!Pydantic v2 description 中文全角括号引发的诡异编译报错(完整根因)

别再踩坑!Pydantic v2 description 中文全角括号引发的诡异编译报错(完整根因)

【导航台账】制造数据与AI践行者老蒋的技术博客全系列文章汇总(持续更新) 文章摘要 在PyCharm中编写Pydantic模型时,Field(description"查询产线排班(白班/夜班)")中的中文全角括号(&#xff09…

2026/7/26 23:36:37 阅读更多 →

最新新闻

79-QLoRA原理深入-4bit量化-NF4-双重量化-bitsandbytes配置

79-QLoRA原理深入-4bit量化-NF4-双重量化-bitsandbytes配置

文章目录【79.PythonAI】QLoRA原理深入:4-bit量化LoRA,24G显存也能微调7B模型导入语1 ~> QLoRA的三项核心技术1.1 显存账本2 ~> NF4:为正态分布量身定做的4-bit编码2.1 为什么不能简单地均匀切分2.2 NF4的定义2.3 关键:存储…

2026/7/26 23:55:50 阅读更多 →
78-LLaMA-Factory微调实战-零代码训练-LoRA参数配置-训练曲线解读

78-LLaMA-Factory微调实战-零代码训练-LoRA参数配置-训练曲线解读

文章目录【78.PythonAI】用LLaMA-Factory一条命令开始微调:零代码也能做模型训练导入语1 ~> 训练链路总览2 ~> 环境搭建2.1 安装(conda隔离,避免污染主环境)2.2 常见安装坑3 ~> 数据集注册3.1 放置文件3.2 在 dataset_in…

2026/7/26 23:55:50 阅读更多 →
AI核心技术解析:RAG、MCP、Agent与Function Call实战指南

AI核心技术解析:RAG、MCP、Agent与Function Call实战指南

1. 走进AI技术核心:四大关键概念解析最近在技术社区里经常看到同行们讨论RAG、MCP、Agent和Function Call这些AI领域的热门概念。作为从业者,我发现很多刚接触AI开发的朋友对这些术语的理解还停留在表面。今天我就结合自己的项目经验,带大家深…

2026/7/26 23:55:50 阅读更多 →
移动端(非uniapp项目) PDA 扫码踩坑:input 聚焦屏蔽软键盘完整解决方案

移动端(非uniapp项目) PDA 扫码踩坑:input 聚焦屏蔽软键盘完整解决方案

目录 第一章 前言 第二章 完整代码实现 第三章 核心实现原理:inputMode 控制软键盘 第四章 PDA 扫码硬件工作原理补充 第五章 踩坑总结 & 兼容注意事项 第一章 前言 业务场景:移动端 PDA 仓储扫码项目(H5项目非uniapp项目&#xff…

2026/7/26 23:55:50 阅读更多 →
实时新闻地图:基于OpenAI嵌入与HNSWLib的新闻聚类可视化实战

实时新闻地图:基于OpenAI嵌入与HNSWLib的新闻聚类可视化实战

在信息爆炸的时代,如何快速把握新闻动态的全貌成为开发者和数据分析师面临的共同挑战。传统的新闻聚合方式往往滞后且分散,而基于实时数据构建的可视化地图能够提供更直观的洞察。本文将完整拆解一个实时新闻周期地图项目的技术实现,从数据采…

2026/7/26 23:55:50 阅读更多 →
CC2510Fx定时器深度解析:从PWM到DSM音频的实战指南

CC2510Fx定时器深度解析:从PWM到DSM音频的实战指南

1. 项目概述:为什么需要深入理解定时器?在嵌入式开发,尤其是无线通信和实时控制领域,定时器(Timer)的地位堪比心脏之于人体。它不仅是系统节拍的来源,更是实现精准延时、PWM(脉冲宽度…

2026/7/26 23:54:50 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻