4.Linux软件编程
4. Linux软件编程1. 操作系统是一款软件为了屏蔽底层不同的硬件平台为上层提供统一的接口实现通用的软件代码PC三大操作系统Unix 世界上第一款操作系统Linux GNU GNUs Not Unix C语言编写服务器嵌入式Windows C/C2. Linux操作系统1. Linux内核5大功能内存管理多任务调度文件系统的管理Linux系统中一切皆是文件多任务间的通信网络通信2. Linux内核1. Linux内核是由系统调用组成的一些纯C代码2. 不允许与用户直接交互3. 内核功能复杂不容易被调用所以通过shell编写一系列命令来完成内核功能命令解释器3. shell作用1. 保护内核2. 命令解释器4. 库函数1. 库函数是对系统调用的封装能够处理一些复杂的应用场景2. 系统调用是Linux内核中的函数接口只有在Linux系统中才能使用功能强大但十分简练3. 库函数可以移植所以具有通用性4.1 Shell1. shell命令1. 基础命令1. lsls -l 显示目录下文件的详细信息ls -a 显示目录下的隐藏文件文件类型b block 块设备文件按块扫描设备信息的文件要用于表示存储设备的文件c character 字符设备文件按字符扫描设备信息的文件主要用于表示普通设备文件d directory 目录文件存放和管理文件的文件夹- 普通文件用来记录信息的文本文件l link 连接文件类似于Windows快捷方式如果A连接到B文件操作A文件其实操作的是B文件硬链接的个数有几个文件名(2个)指向对应磁盘里面的文件删掉一个文件名磁盘空间并不能被回收。s socket 套接字文件进程间通信p pipe 管道文件进程间通信2. touch 创建文件3. rm 删除文件4. mkdir 创建文件夹5. rmdir 删除空文件夹6. rm -rf 删除非空文件夹7. cp 拷贝文件如果拷贝目录文件需要加 -rf选项8. mv 移动文件2. 文件查看命令1. cat功能查看文件中的内容使用示例cat filename2. more/lessmore filenameless filename 按q退出3. head/tailhead/tail -n 行数 文件名3. 文件查找1. find功能在当前目录下找与文件名对应的文件路径find . -name 文件名2.grep功能打印出文件名中所有与字符串匹配的行grep 字符串 文件名4. 通配符*:匹配任意长度任意字符的文件名?:匹配一位长度任意字符的文件名[]:匹配一位长度指定字符的文件名file_*.txt 匹配任意长度、任意字符可以是 0 个字符file_??.txt 表示匹配两个字符file_[1,3,5].txt 表示匹配字符 1、3、5 中的任意一个file_[1-5].txt 表示匹配数字 1~5file_[^6].txt 表示匹配不是 6 的一个字符5. 压缩解压命令压缩tar -zcvf filename.tar.gz dirname/*tar -jcvf filename.tar.bz2 dirname/*解压tar -zxvf filename.tar.gztar -jxvf filename.tar.bz26.组合命令1. 管道将前面命令的输出作为后续命令的输入ps -ef | grep bash2. 重定向将前面命令的输出重定向到文件中 覆盖重定向 追加重定向ps -ef file.txt ps -ef 查看进程信息练习在/usr/include/stdio.h文件中的后200行找到和extern 相关的内容并把这些内容所在的行记录到file.txt文件中使用一条shell命令实现tail -n 200 /usr/include/stdio.h | grep extern file.txt7. 其余命令1. echo 将内容显示在终端2. history 查看终端输入过的历史命令3. du 查看文件大小du -m 文件名/目录名du -k 文件名/目录名du 用于查看文件或目录实际占用的磁盘空间-k 以 KB 显示 -m 以 MB 显示-h以易读格式自动显示单位。4. od 按照指定的方式查看文件中的内容od -c file.txt # 按字符显示od -x file.txt # 按十六进制显示od -d file.txt # 按十进制显示od -b file.txt # 按八进制显示5. date 查看时间和日期6. unameuname -a 查看内核版本、平台架构7. ifconfig 查看网卡信息8. ping 测试主机与指定IP地址是否能够网络连通8. dpkg工具集1. 安装软件sudo dpkg -i 软件包名.deb2. 卸载软件sudo dpkg -P 软件名3. 查看安装是否成功dpkg -l 软件名9. apt-get工具集1. 一定有网2. 设置apt-get工具集的源3. 下载并安装软件sudo apt-get install 软件名4. 卸载软件sudo apt-get remove 软件名 --purge2. shell编程1. 编译型语言如 C 语言1. 有丰富的数据类型2. 先编译再执行3. 执行速度快4. 开发效率低5. 数据的运算和处理2. 解释型语言如 Shell、Python1. 所有内容都是字符串2. 边翻译边执行3. 执行速度慢4. 开发效率高5. 系统的开发和维护3. 编写shell脚本并执行的步骤1.打开文件并编写代码 vim filename.sh2.加上执行权限 chmod x filename.sh3.运行脚本 ./filename.sh4. shell脚本本质就是一系列shell命令的集合5. shell中的变量1. 环境变量PWD $PWD表示 用这个值 当前的路径HOME $HOME 家目录PATH $PATHPATH 表示系统查找可执行命令的路径集合当输入一个命令时Shell 会按照$PATH 中的目录依次查找该命令。2. 位置变量$0文件名$1给脚本传参$2$3$4$#传入参数个数$$脚本运行时的进程ID号$?上一条shell语句执行的结果$1 到 $9分别代表传入脚本的第 1 个到第 9 个参数。$? 表示上一条命令或语句的执行结果0 代表成功3. 自定义变量变量名值 不要加空格会出错6. shell中的引号1. 双引号打印时会替换成变量的值2. 单引号打印单引号中的内容不变3. 倒引号将引号内部的内容作为一个命令使用7. shell脚本中的输入和输出1. echo 输出2. read 输入8. if分支语句if 判断条件thenelsefi判断条件test 判断两个字符串大小两个数字大小逻辑关系文件是否存在以及文件类型9. case分支语句case 变量名 in值1)语句;;值2)语句;;值3)语句;;*)语句;;esac10. while循环while 条件do语句done11. for 循环#for i in 1 2 3 4 5#for i in {1..100}#for i in seq 100for ((i 0; i 101; i))do语句done12. untiluntil 条件do语句doneuntil条件为假时执行循环条件为真时结束循环。#直到 i 100 为止所以 i1~100 都会参与求和。 #!/bin/bash i1 sum0 until [ $i -gt 100 ] do sumexpr $sum $i iexpr $i 1 done echo sum $sum13. 数组#!/bin/bash array(hello world how are you) echo ${array[0]} echo ${array[1]} echo ${array[2]} echo ${array[3]} echo ${array[4]} echo ${array[*]}14. 函数#!/bin/bash #函数return返回的是函数调用的结果结果为0 #函数内部的打印会作为函数的返回值 add() { ret0 retexpr $1 $2 echo $ret return 3 } read num1 read num2 sumadd $num1 $num2 echo $? echo sum $sum #函数没有 return 时返回最后一条命令echo $ret的状态有 return 时返回 return 指定的状态。 #你的 return 3 覆盖了前面 echo 的返回值所以 $? 是 3。小知识点1.exprexpr计算表达式expr 是 Shell 中用于计算表达式的命令主要功能如下基本用途用于评估表达式Evaluate expressions支持算术运算支持的运算包括加、减、乘、除以及比较运算如大于、小于、等于等使用方式通常配合倒引号使用将 expr 及其参数作为命令执行并将结果赋值给变量注意事项在进行乘法运算时由于星号 * 在 Shell 中有通配符含义需要添加反斜杠 \ 进行转义2.testShell 脚本中 test 命令的用法及其在分支语句中的应用1. test 命令基础功能定义test 用于测试表达式真假常配合 if 语句进行条件判断。语法结构基本格式为 test expression若表达式为真则执行后续代码否则走 else 分支。简写形式可以使用中括号 [ ] 替代 test 命令但需注意左右两侧必须保留空格。2. 常用测试选项字符串测试使用 -n 测试长度非零-z 测试长度为零 和 ! 分别判断相等与不等。数值比较使用 -eq相等、-gt大于、-ge大于等于、-lt小于、-le小于等于及 -ne不等于。文件属性支持 -b块设备、-c字符设备、-d目录、-e存在、-f普通文件等选项。#if test $num1 -gt $num2 等价于 if [ $num1 -gt $num2 ]3.PATHpath环境变量的使用? 为啥不直接a.out 而是./a.out ? 为啥不./ls 而是ls?PATH 环境变量用于告诉 Shell输入一个命令后应该去哪些目录中查找对应的可执行文件。例如输入 ls 时Shell 会到 $PATH 中的 /bin、/usr/bin 等目录查找 ls所以可以直接写 ls而自己编译生成的 a.out 一般就在当前目录当前目录 . 默认通常不在 PATH 中因此直接输入 a.out 找不到需要写 ./a.out其中 ./ 就表示“当前目录”。同理./ls 的意思是执行“当前目录下的 ls 文件”如果当前目录没有这个文件就会失败而直接写 lsShell 会根据 PATH 自动找到系统中的 ls。可以用 which ls 或者 whereis ls 查看实际执行的是哪个文件。

相关新闻

【AI接入大模型SDK】ChatSDK示例验证

【AI接入大模型SDK】ChatSDK示例验证

🎬 个人主页:艾莉丝努力练剑❄专栏传送门:《C语言》《数据结构与算法》《C/C干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》⭐️为天地立心,为生民立命…

2026/8/24 3:32:27 阅读更多 →
Falco:Kubernetes运行时安全守护者——内核态监控与异常行为检测实战解析

Falco:Kubernetes运行时安全守护者——内核态监控与异常行为检测实战解析

一、Falco技术架构与内核态监控原理Falco作为CNCF毕业的云原生运行时安全项目,通过eBPF技术实现了对Kubernetes集群中Pod异常行为的内核态监控。其技术原理基于Linux内核的eBPF(扩展伯克利包过滤器)机制,能够在不修改内核源码的前…

2026/8/24 4:23:56 阅读更多 →
计算机毕业设计之无人驾驶出租车注册管理系统

计算机毕业设计之无人驾驶出租车注册管理系统

随着无人驾驶技术的快速发展,无人驾驶出租车已成为智能交通体系的重要组成部分。全球范围内,包括Waymo、Uber、NuTonomy等企业已率先开展无人驾驶出租车的商业化运营,中国如百度等企业也在北京、长沙等城市落地试点项目。技术层面&#xff0c…

2026/8/24 6:32:07 阅读更多 →

最新新闻

一键激活Windows与Office,10分钟完成全部流程

一键激活Windows与Office,10分钟完成全部流程

一键激活Windows与Office,10分钟完成全部流程 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 屏幕右下角的激活水印挂了两周,Word 里的保存和排版按钮全是灰色。你试过找…

2026/8/24 16:02:08 阅读更多 →
QuickBMS 游戏资源提取指南:任意存档包,一条命令搞定

QuickBMS 游戏资源提取指南:任意存档包,一条命令搞定

QuickBMS 游戏资源提取指南:任意存档包,一条命令搞定 【免费下载链接】QuickBMS QuickBMS by aluigi - Github Mirror 项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMS 你下载的游戏资源包打不开?专用提取器只认某一款游戏&a…

2026/8/24 16:02:08 阅读更多 →
IDM 试用期重置完整指南:三步突破注册表权限壁垒,免费恢复30天试用

IDM 试用期重置完整指南:三步突破注册表权限壁垒,免费恢复30天试用

IDM 试用期重置完整指南:三步突破注册表权限壁垒,免费恢复30天试用 【免费下载链接】idm-trial-reset Use IDM forever without cracking 项目地址: https://gitcode.com/gh_mirrors/id/idm-trial-reset 当你第三次看到"试用期已过期"的…

2026/8/24 16:02:08 阅读更多 →
基于LLM与Whisper的本地化AI字幕翻译工具链实践

基于LLM与Whisper的本地化AI字幕翻译工具链实践

这次我们来看一个本地部署的 AI 字幕翻译工具链实践。项目本身是一个名为“科学冒险队Tansar5 1979”的视频,但核心价值在于其配套的“DeepSeek英转中文字幕”工作流程。这背后涉及的不是单一软件,而是一套将英文视频或SRT字幕文件,通过大语言…

2026/8/24 16:02:08 阅读更多 →
Unlock Music 实操指南:在浏览器里用 5 分钟完成加密音乐文件解密

Unlock Music 实操指南:在浏览器里用 5 分钟完成加密音乐文件解密

Unlock Music 实操指南:在浏览器里用 5 分钟完成加密音乐文件解密 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目…

2026/8/24 16:02:08 阅读更多 →
基于大语言模型的AI字幕翻译实践:从SRT处理到本地化工作流

基于大语言模型的AI字幕翻译实践:从SRT处理到本地化工作流

这次我们来看一个将经典动画《万能战士无比敌》(无敌侠)1980版进行AI字幕翻译的项目。这个项目的核心不是开发新模型,而是利用DeepSeek这类大语言模型的能力,对已有的英文字幕文件进行高质量、风格化的中文翻译,最终生…

2026/8/24 16:01:08 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →