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

Shell 相关基础入门,在 Ubuntu 与 CentOS Shell 中的语法差异总结(bash、dash、sh)

新建的test.sh文件vim进去每行开头都默认有一个~符号是什么意思而且在里面鼠标也失效了你问的这两个问题恰好是初学者刚接触vim编辑器时最常遇到的两个困惑。它们完全正常不是系统出错了。一、每行开头的~波浪号是什么意思结论~表示这一行是空白行没有任何字符连空格都没有。详细解释符号含义~波浪号缓冲区buffer里没有内容的行普通字母/符号文件实际存在的内容你的情况你用vim test.sh创建了一个新文件新文件是空的所以整个屏幕都是空白区vim用~来标记这些空白行告诉你“这里没有内容”当你开始输入内容时#!/bin/bash echo hello ~ ~ ~第1、2行变成了实际内容没有~第3行及以后仍然是空白行还有~类比就像一本笔记本有字的页没有标记空白页印了一个淡淡的“此页空白”水印。二、为什么鼠标失效了结论vim默认运行在“纯键盘模式”下根本不支持鼠标操作。编辑器鼠标支持Vim默认不支持纯键盘操作VS Code完全支持Notepad完全支持Nano另一个命令行编辑器支持鼠标如果开启为什么 Vim 要这样设计历史原因Vim 诞生于 1991 年当时鼠标不是标配设计哲学手不离键盘提高编辑效率高手用键盘比鼠标快得多远程操作服务器上根本没有图形界面鼠标不存在在 Vim 里怎么操作你想要键盘操作代替鼠标移动光标h左、j下、k上、l右跳到行首0跳到行尾$删除一个字符x删除一行dd复制一行yy粘贴p保存并退出ESC→:wq→Enter如果你实在想用鼠标不推荐初学者在~/.vimrc中添加vimset mousea但这会改变 Vim 的正常行为选中文本会变成 Visual 模式反而更容易让初学者困惑。三、正确的 Vim 学习路径步骤操作1用vim test.sh打开文件2按i键进入插入模式屏幕底部会显示-- INSERT --3用键盘输入内容4按ESC键退出插入模式5输入:wq然后按Enter保存并退出记住 Vim 的两种核心模式命令模式默认按键盘是各种命令不能输入文字插入模式按i进入按键盘就是输入文字四、如果你只是想快速编辑文件不是学 Vim编辑器优点缺点nano简单直观底部有快捷键提示功能弱cat查看文件内容不能编辑echo 快速写入简单内容只能写不能改bash# 用 nano 编辑更友好 nano test.sh # 屏幕底部有 ^X Exit 等提示^ 表示 Ctrl 键 # 用 cat 快速创建 cat test.sh EOF #!/bin/bash echo hello EOF总结你的问题答案每行开头的~空白行的标记不是错误鼠标失效Vim 默认纯键盘这就是它的设计怎么输入文字按i进入插入模式怎么保存退出ESC→:wq→Enter不想学 Vim 怎么办用nano代替建议如果你未来想走大数据开发Vim 是服务器上必用的工具因为服务器没有图形界面值得花一天时间入门。但如果只是偶尔编辑小文件用nano完全够用。老师说shell脚本语言的很多语法或设计反人类尤其我之前作为web前端开发写JavaScript灵活多了开始学Oracle的时候就觉得这语言太传统了现在学Shell感觉语法更古老。请罗列shell语法需要注意的点或容易错误的点让我可以平稳过渡。比如空格 双圆括号 中括号 等你这个感受完全正确。作为前端开发者你已经被 JavaScript 的灵活性“惯坏了”。Shell 的设计年代1970年代决定了它的语法像一台老式手动挡汽车到处都是坑而且每个坑都摔过无数人。下面这张“Shell 语法避坑地图”专为你这种 JavaScript 背景量身定制。记住不要试图理解它“为什么反人类”只需要记住规则并绕过陷阱。一、最危险的陷阱空格敏感JavaScript 最自由Shell 最严格在 JavaScript 中空格基本无害。在 Shell 中空格是语法分隔符多一个少一个都会炸。场景✅ 正确写法没空格解释变量赋值nameTom等号两边绝对不能有空格条件判断if [ $a $b ]括号内部必须有空格变量最好加引号函数定义foo()或function foo()括号前后不要乱加空格bash# 典型案例一定会出错 nameTom # ✅ 正确 name Tom # ❌ 报错name: command not found记忆口诀赋值等号紧贴变量比较方括号留空隙。二、变量的引号地狱JS 模板字符串真香Shell 中双引号、单引号、反引号行为完全不同而且没有 JS 的模板字符串好使。引用方式行为$VAR(双引号)变量会展开$VAR(单引号)变量不会展开纯字面量cmd(反引号)执行命令获取输出bashnameworld echo hello $name # hello world双引号展开 echo hello $name # hello $name单引号不展开 # 建议除非你明确需要防止变量展开否则一律用双引号包裹变量 echo $name # ✅ 安全 echo $name # ⚠️ 如果变量有空格会被拆分容易炸黄金法则所有变量都用$VAR括起来。三、条件判断的括号迷阵JS 一个if走天下Shell 有3 种括号功能完全不同是新手最容易晕的地方。语法名称用途[ ]test 命令字符串/文件判断[[ ]]扩展 test支持正则、、||推荐(( ))算术运算数学计算、数值比较a5 b10 # ✅ 数值比较用 (( )) if (( a b )); then echo $a 小于 $b fi # ✅ 字符串比较用 [[ ]] nameAlice if [[ $name Alice ]]; then echo hello Alice fi # ❌ 错误用 [ ] 做数值比较会炸它比较的是字符串 if [ $a $b ]; then # 错误推荐写法字符串/文件用[[ ]]数字用(( ))忘记古老的[ ]。四、命令执行与管道JS 的 Promise 是天堂Shell 中命令执行、管道、错误处理非常原始。需求Shell 写法JS 类比执行命令并获取输出output$(ls -l)const output execSync(ls -l)上一条命令是否成功$?(0成功非0失败)没有直接类比逻辑与 (AND)cmd1 cmd2cmd1 cmd2逻辑或 (OR)cmd1 || cmd2cmd1 || cmd2管道前输出当后输入cmd1 | cmd2cmd1.pipe(cmd2)# 典型的脚本模式 if [ -f config.txt ]; then echo 文件存在 else echo 文件不存在创建中... touch config.txt fi # 检查命令是否执行成功 grep error app.log if [[ $? -eq 0 ]]; then echo 发现错误 fi五、函数定义与返回值JS 的函数是瑞士军刀Shell 函数非常原始没有return值只能用echo输出。概念Shell定义myfunc() { ... }调用myfunc参数$1, $2, $返回值只能用echo输出# ✅ 正确函数返回字符串用 echo get_name() { echo Alice } name$(get_name) # nameAlice # ❌ 错误return 只能返回 0-255 的状态码成功/失败 get_name() { return Alice # 错误return 不是返回值是退出码 }记忆Shell 函数就是一段命令集合不是 JS 的函数。六、常见错误速查表打印出来贴显示器旁错误代码原因正确写法command not found变量赋值有空格nameTom[: too many arguments变量未加引号有空格if [[ $var abc ]]unexpected operator[ ]里用了改用[[ $var abc ]]syntax error near unexpected tokenif后少了then或;if [[ ... ]]; thenbad substitution错误的变量语法${var}或$(cmd)七、一份“反人类但必须记住”的模板#!/bin/bash # 模板安全、健壮、可读 # 1. 变量等号无空格一律加双引号 nameworld greetingHello, $name # 2. 条件用 [[ ]] 和 (( )) if [[ -f config.txt ]]; then echo config exists fi if (( 5 3 )); then echo math works fi # 3. 命令替换用 $(...)不是反引号 current_date$(date %Y-%m-%d) echo Today is $current_date # 4. 函数输出用 echo get_full_name() { echo Alice Johnson } full_name$(get_full_name) # 5. 错误处理 if ! mkdir -p /tmp/mydir; then echo Failed to create directory exit 1 fi八、最后给你的心态建议感觉现实“这太原始了”它就是 1970 年代的设计目的不是优雅是在资源极度匮乏的环境下稳定运行“为什么不能像 JS 那样”因为 Shell 是胶水语言用来粘合各种小命令不是用来写复杂逻辑的“我该学到什么程度”能写50 行以内的脚本、能看懂别人写的脚本、能改 bug就完全够用一句话总结不要和 Shell 讲道理记住它的“奇葩规则”把它当工具用写完就跑。你的主业是大数据不是 Shell 专家。等你写几天 Shell再回去写 JS你会感动得流泪。Shell在不同Linux版本中语法好像有细微差异比如$ (($A$B))有些版本正确有些版本错误请使用表格总结常见差异你的观察非常敏锐$(( $A $B ))在某些系统上报错而在另一些系统上正常这确实是 Shell 脚本跨平台兼容性的经典问题。核心原因在于不同 Linux 发行版默认的/bin/sh指向不同的 Shell 实现。一、问题根源/bin/sh指向谁发行版/bin/sh实际指向特点Ubuntu / Debiandash轻量、POSIX 严格、启动快、功能少CentOS / RHELbash功能丰富、支持扩展语法Alpine Linuxbusybox ash极简、POSIX 子集macOSbash旧版或zsh取决于版本关键结论如果你用#!/bin/sh声明脚本Ubuntu 会用dash执行而 CentOS 会用bash执行。dash对语法要求更严格很多bash的“舒服写法”在dash下直接报错。你遇到的$(( $A $B ))问题正是因为dash对算术运算的语法要求更严格。二、Shell 语法差异速查表1. 算术运算语法BashDash/Zsh说明$(( a b ))✅✅标准写法通用$(( $a $b ))✅⚠️ 部分版本报错dash对$嵌套敏感$[ a b ]✅❌ 报错旧语法已废弃let a✅❌let: not foundlet是 bash 内建命令-2-7(( a ))✅❌ 语法错误C 风格循环同理✅ 通用写法result$((a b))内部变量不加$# ❌ 在 dash 中可能报错 result$(( $a $b )) # ✅ 通用写法 result$((a b))2. 条件判断语法BashDash/Zsh说明[ $a $b ]✅✅POSIX 标准[ $a $b ]✅❌ 部分报错是 bash 扩展-7[[ $a $b ]]✅❌ 语法错误[[ ]]是 bash 扩展[[ $a ~ regex ]]✅❌ 不支持正则匹配是 bash 扩展✅ 通用写法[ $a $b ]单等号双括号3. 字符串与数组语法BashDash/Zsh说明array(a b c)✅❌ 不支持数组是 bash 扩展-7${array[1]}✅❌ 不支持同上${#var}✅✅字符串长度${var:1:2}✅❌ 不支持子串截取是 bash 扩展-7${var^^}✅❌ 不支持大小写转换是 bash 扩展-7✅ 通用替代用cut、sed、awk或tr处理字符串# ❌ 子串截取 echo ${str:1:2} # ✅ 通用写法 echo $str | cut -c2-34. 函数语法BashDash/Zsh说明func() { ... }✅✅POSIX 标准function func() { ... }✅❌ 语法错误function关键字是 bash 扩展-7✅ 通用写法func() { ... }不要写function5. 循环语法BashDash/Zsh说明for i in {1..10}; do ...✅❌ 不展开{m..n}是 bash 扩展-7for ((i0;i10;i)); do ...✅❌ 语法错误C 风格循环是 bash 扩展-4-7select var in list; do ...✅❌ 不支持select是 bash 扩展-7✅ 通用写法for i in $(seq 1 10); do ...或while循环# ❌ dash 不支持 for ((i0;i10;i)); do echo $i; done # ✅ 通用写法 i0 while [ $i -lt 10 ]; do echo $i i$((i 1)) done6. 重定向与 Here Document语法BashDash/Zsh说明 string✅❌ 不支持Here String 是 bash 扩展-7word非数字✅❌ 报错err.log写法有问题-7✅ 通用写法用 Here Document 或file 21# ❌ Here String cat hello # ✅ Here Document cat EOF hello EOF7. Shebang 与执行方式场景BashDash/Zsh说明#!/bin/sh用/bin/sh执行用/bin/sh执行执行器取决于系统-1-5#!/bin/bash用 bash 执行用 bash 执行前提是系统安装了 bashsh script.sh忽略 shebang忽略 shebang强制用sh执行./script.sh按 shebang 执行按 shebang 执行尊重脚本第一行关键警告即使用了#!/bin/bash如果你用sh script.sh执行会强制使用sh忽略 shebang-7三、算术运算问题详解针对你提到的$(( $A $B ))a5 b3 # ❌ 在 dash 中可能报错 result$(( $a $b )) # dash 报错bad substitution # ✅ 通用写法内部不加 $ result$((a b)) # bash 和 dash 都支持 # ✅ 另一种通用写法 result$(expr $a $b) # 注意空格但性能较差[citation:6]为什么$(( $a $b ))在 dash 中会报错dash的解析器要求$(( ))内部不要使用$引用变量直接写变量名即可。虽然某些版本的dash可能宽容处理但为了跨平台兼容永远不要在内层加$。四、如何编写跨平台脚本方案一坚持 POSIX 标准推荐生产环境使用#!/bin/sh仅 POSIX 语法功能受限但到处能跑。#!/bin/sh # POSIX 兼容写法 a5 b3 result$((a b)) # 算术 [ $a -eq $b ] echo eq # 比较 for i in $(seq 1 10); do # 循环 echo $i done方案二明确使用 bash用#!/bin/bash声明并确保脚本以./script.sh或bash script.sh方式执行-1-7。#!/bin/bash # 大胆使用 bash 扩展 array(a b c) for ((i0;i10;i)); do echo $i done方案三测试你的脚本# 用 dash 测试Ubuntu dash script.sh # 用 bash 测试 bash script.sh # 检查语法 sh -n script.sh五、一句话总结你的问题答案为什么$(( $a $b ))在某些系统报错Ubuntu 的/bin/sh是dash要求算术运算内变量不加$通用写法是什么result$((a b))最安全的策略生产环境用#!/bin/sh POSIX 语法复杂功能用#!/bin/bash我用的Ubuntu老师用的CentOStest.sh开头的确老师推荐写的是#!/bin/sh执行的时候老师用的是 sh test.sh。我应该是用 bash test.sh执行吗你的判断完全正确而且你问到了一个非常关键、生产环境必踩的坑。结论先行在你的 Ubuntu 上应该用bash test.sh执行或者把脚本第一行改成#!/bin/bash然后用./test.sh执行。一、为什么老师用sh test.sh没事你用就会出问题环境/bin/sh实际指向sh test.sh的效果老师的 CentOSbash等于在用bash执行语法宽松你的 Ubuntudash在用dash执行语法严格很多写法报错结论同样写#!/bin/shsh test.sh在你俩机器上实际用的解释器不一样。这就是为什么老师写的脚本在你机器上可能报错你按老师的习惯写脚本可能被dash卡住二、你应该怎么做三个方案方案做法优点缺点方案一推荐学脚本第一行写#!/bin/bash执行用./test.sh需chmod x或bash test.sh语法丰富和老师教的兼容方案二最稳妥脚本第一行写#!/bin/sh但执行时用bash test.sh不依赖 shebang强制用 bash每次执行要多敲bash方案三不推荐强行适配dash只写 POSIX 语法脚本到处能跑语法限制多很痛苦不适合学习三、具体操作示例#!/bin/bash./test.sh#!/bin/bash # 第一行写 bash而不是 sh a5 b3 echo $((a b)) # 算术 array(1 2 3) # 数组也可以用 echo ${array[0]}执行方式chmod x test.sh ./test.sh # 或 bash test.sh四、验证你的环境强烈建议亲手跑一下# 1. 查看 /bin/sh 指向谁 ls -l /bin/sh # Ubuntu 输出/bin/sh - dash # CentOS 输出/bin/sh - bash # 2. 测试脚本 cat test.sh EOF #!/bin/sh if [[ a a ]]; then echo 双等号测试 fi EOF # 3. 用 sh 执行Ubuntu 会报错 sh test.sh # 报错test.sh: 2: [[: not found # 4. 用 bash 执行成功 bash test.sh # 输出双等号测试五、学习阶段的建议阶段建议写法执行方式跟着老师抄作业脚本里写#!/bin/bash用bash test.sh执行自己写练习脚本用#!/bin/bash养成好习惯考试 / 作业提交按老师要求来如果老师用 CentOS他的shbash你写#!/bin/sh在他那边也能跑一个现实建议你可以继续用#!/bin/sh写脚本但执行时一律用bash test.sh。这样语法上你和老师保持一致他读你脚本不别扭执行上你在 Ubuntu 不会踩dash的坑总结一句话在 Ubuntu 上用#!/bin/bash或bash test.sh执行才能和 CentOS 的行为对齐。不是说 bash test.sh和sh test.sh一样吗不一样这是 Shell 学习中最常见的误解之一你问到了关键点。核心结论执行方式Ubuntu 上实际用的是CentOS 上实际用的是bash test.shbashbashsh test.shdash不是 bashbashsh 指向 bash结论bash test.sh和sh test.sh在 Ubuntu 上不一样在 CentOS 上才一样。为什么会有这个误解因为很多人包括老师在 CentOS 上学习CentOS 的/bin/sh是软链接指向/bin/bash所以执行sh test.sh就等于执行bash test.sh。# CentOS 上 ls -l /bin/sh # 输出/bin/sh - bash ← sh 就是 bash # 所以这两个命令完全等价 sh test.sh # 实际执行的是 bash bash test.sh # 也是 bash但在 Ubuntu 上不一样# Ubuntu 上 ls -l /bin/sh # 输出/bin/sh - dash ← sh 是 dash不是 bash # 这两个命令不等价 sh test.sh # 实际执行的是 dash语法严格、功能少 bash test.sh # 执行的是 bash功能丰富验证实验强烈建议你自己跑一遍# 1. 创建一个测试脚本 cat test.sh EOF #!/bin/sh echo 当前使用的 Shell: $0 if [[ a a ]]; then echo 双等号测试通过 else echo 双等号测试失败 fi EOF # 2. 用 sh 执行Ubuntu 上会报错 sh test.sh # 输出 # 当前使用的 Shell: sh # test.sh: 4: [[: not found ← dash 不认识 [[ # 双等号测试失败 # 3. 用 bash 执行成功 bash test.sh # 输出 # 当前使用的 Shell: bash # 双等号测试通过 ← bash 认识 [[为什么 Ubuntu 要把/bin/sh设为dash原因说明性能dash 比 bash 轻量得多启动快 2-3 倍标准化dash 严格遵循 POSIX 标准不添加扩展语法系统脚本Ubuntu 系统自己的启动脚本都用 dash 执行加速开机代价很多在 bash 里写得很舒服的语法[[ ]]、数组、、source等在 dash 里直接报错。你在 Ubuntu 上应该怎么做你的需求推荐做法说明跟着老师学CentOS 风格用bash test.sh执行绕开 dash行为与 CentOS 一致自己写脚本练习脚本第一行写#!/bin/bash然后chmod x./test.sh养成好习惯考试/作业提交用bash test.sh测试通过后再提交确保语法正确写跨平台脚本只写 POSIX 语法用sh test.sh测试到处能跑不推荐初学者一句话记忆Ubuntu 上sh不是bash是dash。想用 bash 就写bash或#!/bin/bash。

相关文章:

Shell 相关基础入门,在 Ubuntu 与 CentOS Shell 中的语法差异总结(bash、dash、sh)

新建的test.sh文件,vim进去,每行开头都默认有一个~符号,是什么意思,而且在里面鼠标也失效了? 你问的这两个问题,恰好是初学者刚接触 vim 编辑器时最常遇到的两个困惑。它们完全正常,不是系统出错…...

KAN神经网络在GPT架构中的可解释性实验与实现

1. 项目概述:当KAN神经网络遇上GPT,一场关于可解释性的实验最近在开源社区里,一个名为“kan-gpt”的项目引起了我的注意。这个项目将两个看似不相关的领域——KAN(Kolmogorov–Arnold Networks)神经网络和GPT&#xff…...

百度网盘SVIP破解插件:macOS用户突破下载限速的终极指南

百度网盘SVIP破解插件:macOS用户突破下载限速的终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 百度网盘SVIP破解插件(…...

CST Studio Suite 视窗操控进阶:从快捷键到高效建模的视觉掌控

1. 3D视窗操控的核心逻辑与效率提升 刚开始用CST Studio Suite建模时,我总被复杂的模型结构搞得晕头转向。直到发现视窗操控的底层逻辑其实遵循空间认知三要素:视角定位、焦点聚焦、结构解析。举个例子,在调试一个微带天线时,通过…...

2025年macOS菜单栏终极管理方案:开源神器Ice让你的工作区重获新生

2025年macOS菜单栏终极管理方案:开源神器Ice让你的工作区重获新生 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice macOS菜单栏管理工具Ice是一款完全免费的开源神器,专为现代…...

从GMM到MDN:想给神经网络加上‘概率思维’?这份融合指南请收好

从GMM到MDN:赋予神经网络概率思维的工程实践指南 当我们需要预测一个复杂系统的行为时,单一的点估计往往显得力不从心。想象一下,在自动驾驶系统中,车辆需要预测前方行人的运动轨迹;或者在量化交易中,我们…...

Rviz Publish Point进阶玩法:打造你的交互式机器人任务编辑器

Rviz Publish Point进阶玩法:打造你的交互式机器人任务编辑器 在仓储巡检、展厅导览等场景中,机器人需要频繁执行多目标点任务序列。传统编程方式每次修改路径都需要重新编译代码,而Rviz的Publish Point功能配合定制化开发,可以将…...

XHS-Downloader终极指南:如何高效批量下载小红书内容

XHS-Downloader终极指南:如何高效批量下载小红书内容 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接&…...

从ST官方例程到产品级Bootloader:STM32F030 IAP的内存划分、中断重映射与APP配置全解析

从ST官方例程到产品级Bootloader:STM32F030 IAP的内存划分、中断重映射与APP配置全解析 在嵌入式产品开发中,固件升级是一个无法回避的挑战。想象一下,当你的设备已经部署在现场,却发现需要修复一个关键bug或添加新功能时&#xf…...

三分钟搞定全网音乐歌词:双平台智能歌词下载工具完全指南

三分钟搞定全网音乐歌词:双平台智能歌词下载工具完全指南 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到心爱歌曲的歌词而烦恼吗?无…...

STM32H743实战笔记:用SN65HVD230驱动14个伺服电机,1M波特率稳不稳?

STM32H743工业级CAN总线实战:14伺服电机集群控制与SN65HVD230极限测试 在工业机器人关节控制领域,多电机协同作业对总线通讯的实时性和稳定性提出严苛要求。最近完成的一个AGV底盘项目让我对STM32H743的CANopen主站性能有了全新认识——当需要同时驱动14…...

告别混合写法!详解Nginx 1.25.1中独立的http2指令配置与性能影响

Nginx 1.25.1 HTTP/2配置革新:架构演进与性能实践指南 当Nginx 1.25.1的更新日志中出现"http2指令独立"这一行文字时,许多资深运维工程师的配置管理哲学正在被悄然改写。这不仅仅是语法糖的调整,而是反映了Web服务器架构设计从&quo…...

红米K60澎湃OS解锁进阶:Delta面具Root实战与BL解锁后系统深度定制指南

1. 红米K60澎湃OS解锁Root前的准备工作 拿到一台已经解锁Bootloader的红米K60,想要通过Delta面具获取Root权限,准备工作至关重要。我遇到过不少小伙伴因为前期准备不足,导致刷机过程中出现各种奇怪问题。下面这些步骤都是我实测有效的方案&am…...

ENVI 5.6 + COSI-Corr插件整合指南:搞定地表形变分析的第一步

ENVI 5.6 COSI-Corr插件整合指南:搞定地表形变分析的第一步 对于地质测绘领域的研究人员和工程师来说,地表形变监测是理解地质灾害、评估基础设施安全的重要技术手段。在众多遥感分析方法中,COSI-Corr(Co-registration of Optic…...

逆向分析效率翻倍:深度挖掘IDA Pro的‘隐藏’窗口——段视图、签名、类型库的实战价值

逆向分析效率翻倍:深度挖掘IDA Pro的‘隐藏’窗口实战指南 在逆向工程领域,IDA Pro无疑是众多安全研究员和分析师的首选工具。然而,许多中级用户往往只停留在反汇编窗口的基础操作上,忽视了那些隐藏在界面角落却能极大提升分析效率…...

Gemini3.1Pro数据分析报告自动化实战

用 Gemini 3.1 Pro 快速生成数据分析报告并自动可视化:端到端闭环(生成—验证—反思—修正—回归) 门控降级 4周MVP路线图要“快速生成数据分析报告并可视化”,真正难点不是生成文字,而是把报告做成可核验、可复用、可…...

magnetW磁力聚合搜索工具:一站式资源发现神器

magnetW磁力聚合搜索工具:一站式资源发现神器 【免费下载链接】magnetW [已失效,不再维护] 项目地址: https://gitcode.com/gh_mirrors/ma/magnetW 磁力搜索工具magnetW是一款基于Electron框架开发的跨平台桌面应用,专为技术爱好者和普…...

RV1126 NPU部署ResNet50全流程:从PyTorch训练到嵌入式板端推理

1. 项目概述:从零到一,在RV1126上跑通ResNet50最近在折腾一块EASY-EAI-Nano开发板,核心是瑞芯微的RV1126芯片,这玩意儿带了个NPU,不拿来跑跑AI模型实在说不过去。手头正好有个车辆分类的需求,就想试试经典的…...

3步快速安装Android应用的终极指南:告别模拟器时代

3步快速安装Android应用的终极指南:告别模拟器时代 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想过在Windows电脑上直接运行Android应用&…...

保姆级教程:用Vue3+webrtc-streamer搞定海康/大华监控的Web实时播放(附完整代码)

Vue3与WebRTC-streamer实战:企业级监控视频流集成指南 监控系统在现代企业管理中扮演着重要角色,而将监控视频无缝集成到Web应用中已成为许多开发者的刚需。本文将带你从零开始,使用Vue3和webrtc-streamer实现海康、大华等主流监控设备的实时…...

魔兽争霸3终极优化指南:三步告别卡顿与显示异常

魔兽争霸3终极优化指南:三步告别卡顿与显示异常 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电脑上的卡顿、掉帧…...

保姆级教程:在NVIDIA TX1上搞定万集WLR-716激光雷达的ROS驱动与RVIZ可视化

保姆级教程:在NVIDIA TX1上搞定万集WLR-716激光雷达的ROS驱动与RVIZ可视化 当机器人开发者第一次拿到万集WLR-716激光雷达和NVIDIA Jetson TX1开发板时,最迫切的需求就是快速搭建测试环境,验证硬件功能。本文将提供一份从零开始的详细指南&am…...

暑期旅游网络诈骗演化与 AI 赋能防御体系研究

摘要 2026 年暑期旅游旺季到来,在线预订、短信通知、证件办理等全流程成为网络诈骗高发场景。The420.in 于 2026 年 5 月 16 日发布的安全预警显示,虚假通行费钓鱼短信、AI 伪造房源预订、虚假政务证件网站、深度伪造语音与视频四类诈骗呈产业化、规模化…...

Spider2-V:多模态AI智能体框架,连接LLM与GUI自动化的工程实践

1. 项目概述:一个面向开发者的多模态智能体框架 最近在AI应用开发圈子里,一个名为“Spider2-V”的项目引起了我的注意。它不是一个简单的聊天机器人,也不是一个孤立的图像识别模型,而是一个旨在将大型语言模型(LLM&…...

为Claude Code配置Taotoken作为备用API服务商防止中断

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置Taotoken作为备用API服务商防止中断 当您依赖Claude Code作为编程助手时,可能会遇到服务暂时不可用或…...

SoC与SoM技术解析:嵌入式开发的双刃剑与选型实战

1. 项目概述:当“系统”成为商品最近几年,无论是消费电子、工业控制还是物联网设备,一个明显的趋势是:越来越多的产品不再从零开始设计核心计算单元。取而代之的,是直接采用一颗高度集成的“片上系统”,或者…...

在VSCode中重塑R语言开发体验:vscode-R插件深度解析

在VSCode中重塑R语言开发体验:vscode-R插件深度解析 【免费下载链接】vscode-R R Extension for Visual Studio Code 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-R 你是否曾为R语言开发环境的局限性感到困扰?传统IDE虽然功能齐全&#…...

【NotebookLM统计方法选择权威指南】:20年数据科学家亲授5大避坑法则与3步决策框架

更多请点击: https://kaifayun.com 更多请点击: https://intelliparadigm.com 第一章:NotebookLM统计方法选择的核心挑战与认知重构 NotebookLM 作为 Google 推出的面向研究者与知识工作者的 AI 助手,其核心能力依赖于对用户上传…...

终极GTA5安全增强菜单:YimMenu完全使用指南

终极GTA5安全增强菜单:YimMenu完全使用指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu Y…...

Linux蓝牙SPP连接保姆级教程:从手机App到开发板双向通信实战(Android/iOS)

Linux蓝牙SPP连接实战:手机与开发板双向通信全指南 当智能家居控制面板需要无线接收手机指令,或是工业传感器数据要通过移动设备实时查看时,蓝牙串口协议(SPP)便成为最便捷的桥梁。不同于常见的蓝牙音频传输,SPP提供了稳定的数据通…...