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

Linux 第六讲 --- 工具篇(一)yum/apt与vim

前言:

经过前五讲对Linux基础指令与权限系统的系统学习,相信你已经能在命令行中自如地穿梭于文件丛林,精准调配权限密钥。但真正的Linux玩家,绝不会止步于基础操作的重复劳作。

从今天起,我们将打开Linux的"瑞士军刀"套装——如果说基础命令是生存工具,那么包管理工具与文本编辑器则是工程师的生产力倍增器。yum/apt将赋予你一键部署软件生态的魔法,而vim这把双刃剑,在淬炼出指尖飞舞的编辑艺术后,将成为你征战代码战场最忠实的伙伴。准备好告别低效的软件安装方式,挣脱图形化编辑器的舒适区,这场效率革命,就从此刻开始。


目录

前言:

一、Linux软件包管理器 - yum/apt

1.1  Linux的几种安装方式

1.21 认识yum

1.3 yum/apt的使用

1.4 啥是yum源

1.41 Linux的软件生态

1.5Linux与Windows的文件交流

 1.51rzsz软件

1.52 工具的安装

1.53 使用技巧 

二、Linux文本编辑器 - vim

2.1vim的介绍

2.2vim的安装

2.3vim的模式介绍

2.4命令模式指令使用

2.41 移动光标

2.42  删除

2.43 复制

2.44  注释

 2.45 其他常用命令

2.5底行模式指令

2.6 vim的配置

常见的配置项:

Vim 常用配置选项速查表

总结:


 

一、Linux软件包管理器 - yum/apt

1.1  Linux的几种安装方式

在Linux下安装软件的方法大概有以下三种:
1)下载到程序的源代码,自行进行编译,得到可执行程序。
2)获取rpm安装包,通过rpm命令进行安装。(未解决软件的依赖关系)
3)通过yum/apt进行安装软件。(常用)

前面的两种安装方式特别麻烦,且对新手来说容易出错

1.21 认识yum

    yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

    说白了,yum就是一个Linux下的一个软件商城。 

    1.3 yum/apt的使用

    yum
    主要使用发行版:Red Hat及其衍生版,如CentOS、Fedora(在Fedora 22及以后版本被DNF取代)
    功能:YUM是一个基于RPM的包管理器,能够自动下载、安装、更新和删除软件包,同时处理依赖关系
    常用命令:

    • sudo yum install package_name:安装指定的软件包及其依赖项
    • sudo yum groupinstall group_name:安装指定的软件包组
    • sudo yum remove package_name:卸载指定的软件包,但保留其配置文件
    • sudo yum check-update:检查所有可更新的软件包
    • sudo yum update:更新所有已安装的软件包到最新版本
    • sudo yum list:列出所有可安装和更新的软件包
    • sudo yum search keyword:根据关键字搜索软件包

    apt
    主要使用发行版:Debian及其衍生版,如Ubuntu、Linux Mint等
    功能:支持从软件仓库自动下载、安装、更新和卸载软件包,同时自动处理软件包之间的依赖关系
    常用命令:

    1. sudo apt update:更新软件包列表,以便可以安装最新版本的软件包及其依赖项
    2. sudo apt install package_name:安装名为package_name的软件包及其依赖项
    3. sudo apt remove package_name:删除名为package_name的软件包,但保留其配置文件
    4. sudo apt purge package_name:删除名为package_name的软件包及其配置文件
    5. sudo apt upgrade:升级所有已安装的软件包到最新版本,同时解决依赖关系
    6. sudo apt autoremove:删除不再需要的软件包和依赖项
    7. sudo apt search <keyword>:在软件仓库中搜索包含指定关键字的软件包
    8. apt list --installed:列出所有已安装的软件包

    注意事项:
    1)安装软件时由于需要向系统目录中写入内容,一般需要sudo或者切换到root账户下才能完成。
    2)yum安装软件只能一个装完了再装另一个,正在使用yum安装一个软件的过程中,如果再尝试用yum安装另外一个软件,yum会报错。

    1.4 啥是yum源

    1.41 Linux的软件生态

    我们知道,在手机/ipad/笔记本中,当我们想要下载一个软件的时候,我们会去应用商店,软件管家这些客户端app去下载,这些软件商城也是要在对应的操作系统中跑的,然后他们会通过网络与后面的服务器进行链接,从而获取到要下载的安装包等,而在linux中,yum就类似于这个应用商店,这个yum也是要在一个操作系统上跑的,比如centos。然后我们就可以去下载了

    那么现在问题来了

    • 操作系统怎么知道去哪里下载?
    • 公司,个人组织出于什么目的,或者动机给我们提供给软件服务?

    我们先来看第二个问题

    其实这些给我们提供软件服务的都是一些职业程序员

    这里就要谈到Linux的生态:开源

    1. 开源,是一种商业战略
    2. 开源,有时候也挺贵的

    当我们对一个操作系统进行选型的时候,我们作为使用者要考虑的是生态是否是良好的。

    站在OS的设计者和推动者,他们是提供者,它们要让更多的人使用它们的服务器,那就要使生态更加完善,让别人认为它的操作系统更好。

    但是提供操作系统的人,他们不可能为爱发电,因为服务器都是要钱的。但是对于使用者而言,他们不希望这样的组织,社区倒闭,所以就会有一些大公司的捐助。有了捐助,操作系统才能更好的发展。

    所以开源可以使得生态越来越好,这就像一种商业战略。开源,有时候也挺贵的意思就是我们虽然使用了它们免费的技术,但是我们也在无形中付出了代价。

    我们再来看第一个问题

    操作系统使用apt/yum的安装软件是不是需要找到一个又一个的软件包,而软件包肯定是存在某些特定的服务器上的。

    所以我们的操作系统要去特定的服务器上下载对应的软件包,而一个独立的服务器是如何知道另外的服务器呢?那我们是不是需要一个地址找到对应服务器,所以在操作系统当中我们将这些地址称为yum源/软件源。

    1.5Linux与Windows的文件交流

     1.51rzsz软件

    这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件

    安装完毕之后可以通过拖拽的方式将文件上传过去

    1.52 工具的安装

    我们可以先来查看一下这款软件在我们的系统当中有没有。

    yum list | grep lrzsz

    这是在Ubuntu环境下的结果 

    如果没有可以安装一下

    #CentOS
    sudo yum install -y lrzsz
    #ubuntu
    sudo apt-get install lrzsz

    1.53 使用技巧 

    sz指令
    作用:sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。

    常用参数

    • -a 以文本方式传输(ascii)
    • -b 以二进制方式传输(binary)
    • -e 对控制字符转义(escape),这可以保证文件传输正确。

    如果能够确定所传输的文件是文本格式的,使用 sz -a files。

    如果是二进制文件,使用 sz -be files

    rz指令

    作用:从本地电脑上传文件到Linux服务器,可以使用该命令。

    • -b 以二进制方式,默认为文本方式。
    • -e 对所有控制字符转义。

    如果要保证上传的文件内容在服务器端保存之后与原始文件一致,最好同时设置这两个标志,如下所示方式使用:

    rz -be

    此命令执行时,会弹出文件选择对话框,选择好需要上传的文件之后,点确定,就可以开始上传的过程了。上传的速度取决于当时网络的状况。  


    二、Linux文本编辑器 - vim

    2.1vim的介绍

    vim是一个多模式的文本编辑器,在我们做开发的时候,解决我们编写代码的问题。

    它有很多的模式,不过我们暂时先只考虑这四种模式

    • 命令模式
    • 插入模式
    • 底行模式
    • 替换模式

    2.2vim的安装

    如果你的服务器上没有安装vim,可以按照上面的安装方法安装一下。

    查看是否安装了vim

    安装vim

    #Ubuntu
    1 sudo apt install vim
    #CentOS
    2 sudo yum install -y vim

    2.3vim的模式介绍

    我们这里主要介绍vim最常用的三种模式和一种好用的模式:命令模式、插入模式、底行模式以及替换模式。

    1、命令模式
    在命令模式下,我们可以控制屏幕光标的移动,字符、字或行的删除,复制粘贴,剪贴等操作。在我们刚进入vim的时候,就是命令模式。
    2、插入模式
    只有在插入模式下才能进行文字输入,该模式是我们使用最频繁的编辑模式。

    要进入插入模式,你可以从命令模式开始,然后使用i(在当前光标位置插入)、a(在当前光标位置的下一个字符开始插入)、o(在当前光标所在行的下一行开始新行并插入)等命令之一
    3、底行模式
    在底行模式下,我们可以将文件保存或退出,也可以进行查找字符串等操作。在底行模式下我们还可以直接输入vim help-modes查看当前vim的所有模式。

    在命令行模式下,你可以输入以冒号(:)开头的命令。要从普通模式进入命令行模式,只需输入冒号(:)即可。执行完命令后,Vim通常会返回到普通模式

    4、替换模式

    在替换模式下,我们的输入字符会直接替换掉光标所在位置的字符。

    要进入插入模式,你可以从命令模式开始,然后使用r即可

    注意:

    1.一般插入模式和底行模式是不能互相直接进入的,一般都要经过命令模式来跳转。

    2.如果不清楚当前在哪种模式下,无脑ESC进入普通模式就行。

    2.4命令模式指令使用

    2.41 移动光标

    1. vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母h,j,k,l,分别控制光标左、下、上、右移一格
    2. G:移动到文章的最后、
    3. #G:移动到第#行
    4. gg:进入到文本开始
    5. $ :移动到光标所在行的“行尾”
    6. ^:移动到光标所在行的“行首”
    7. w:光标跳到下个字的开头
    8. e:光标跳到下个字的字尾
    9. b:光标回到上个字的开头
    10. n+l:光标移到该行的第n个位置
    11. ctrl+b:屏幕往“后”移动一页
    12. ctrl+f:屏幕往“前”移动一页
    13. ctrl+u:屏幕往“后”移动半页
    14. ctrl+d:屏幕往“前”移动半页

    2.42  删除

    1. x:每按一次,删除光标所在位置的一个字符
    2. n+x:例如,6x表示删除光标所在位置的“后面(包含自己在内)”6个字符
    3. X:大写的X,每按一次,删除光标所在位置的“前面”一个字符
    4. n+X:例如,20 X表示删除光标所在位置的“前面”20个字符
    5. dd:删除光标所在行
    6. n+dd:从光标所在行开始删除n行

    2.43 复制

    1. y+w:将光标所在之处到字尾的字符复制到缓冲区中

    2. n+y+w:复制#个字到缓冲区

    3. yy:复制光标所在行到缓冲区

    4. n+yy:例如,6yy表示拷贝从光标所在的该行“往下数”6行文字

    5. p:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能

    6. n+p:复制n次

    2.44  注释

    1. 注释指定行
    2.  在命令模式下,先将光标移动到需要注释的开始,按Ctrl + v,在用上下键(通常用j、k)调整需要注释的所有行(如果需要注释的行太多也可以配合#G快速移动光标),输入I(大写i),输入注释符//,最后快速按ESC两次。
    3. 取消指定行的注释
    4. 在命令模式下,先将光标移动到需要取消注释的开始,按Ctrl + v,再配合j、l键选中需要取消的注释符,按d就删除了选中的注释符。 

     2.45 其他常用命令

    u : 撤销之前的操作

    ctrl + r : 撤销之前的撤销

    shift + ~ : 大小写转换

    (n)r : 对光标字符开始的n个字符进行批量化替换,替换为新输入的字符,n默认为1

    2.5底行模式指令

    在使用底行模式之前,请记住先按「ESC」键确定您已经处于命令模式,再按“shift+;”即可进入底行模式。

    注意:底行指令的执行,必须在底行模式下,以“:”开头

    1.列出行号
    「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号

    2.跳到文件中的某一行
    「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行

    3.查找字符

    「/  关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止
    「? 关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止


    4.保存文件
    「w」: 在冒号输入字母「w」就可以将文件保存起来

    5.离开vim

    「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim
    「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件


    6.执行外部命令后返回vim
    在 Vim 的底行模式中,! 符号有一个特殊的作用,它允许你执行外部命令。当你以 ! 开头输入一个命令时,Vim 会退出到 shell 环境中执行这个命令,并在命令执行完毕后返回到 Vim(最常见的是与man手册使用)。这个功能允许你直接从 Vim 内部调用系统命令,比如查看文件、搜索文本、编译程序等

    7.分屏

    在底行模式下输入:vs文件名,Vim 会在当前窗口的右侧(或左侧,取决于你的 Vim 配置和当前分屏情况)垂直地打开一个新窗口,并尝试加载指定的文件名
    Ctrl+w :在分屏之间切换光标
    wq:保存并退出当前分屏

    2.6 vim的配置

    Vim的基础配置主要涉及对其配置文件.vimrc的编辑,以实现对Vim编辑器的个性化设置。

    在目录/etc/vim/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。但是一般不推荐直接对所有的用户一起配置,最好是在个人账号下配置。


    在Linux系统中,Vim的配置文件通常位于用户的家目录下,文件名为.vimrc。使用命令vim ~/.vimrc打开(或创建).vimrc文件进行编辑,因为这里配置的文件位于用户的家目录下,所以只对当前用户有效。
    进入插入模式(按i键),在.vimrc文件中添加所需的配置选项
    设置完成后,按下Esc键退出插入模式,然后输入:wq(表示保存并退出)并回车,以保存对.vimrc文件的更改

    常见的配置项:

    Vim 常用配置选项速查表

    类别配置项命令/示例说明
    基础设置显示行号set number显示绝对行号
    相对行号set relativenumber显示相对行号(便于跳转)
    语法高亮syntax enable启用语法高亮
    文件类型检测filetype plugin indent on根据文件类型加载插件和缩进规则
    搜索与替换高亮搜索结果set hlsearch高亮所有匹配项
    实时搜索set incsearch输入时实时显示匹配结果
    智能大小写set ignorecase
    set smartcase
    搜索默认忽略大小写,含大写时区分
    缩进与制表符自动缩进set autoindent
    set smartindent
    继承上一行缩进,支持智能缩进(如代码块)
    Tab 转空格set expandtab将 Tab 转换为空格
    缩进宽度set tabstop=4
    set shiftwidth=4
    Tab 显示为4空格,自动缩进用4空格
    界面优化高亮当前行/列set cursorline
    set cursorcolumn
    高亮光标所在行或列
    滚动边界set scrolloff=5滚动时保留上下5行上下文
    状态栏显示set laststatus=2
    set ruler
    始终显示状态栏及光标位置(行:列)
    鼠标支持set mouse=a启用鼠标操作(滚动、选择等)
    文件与编码默认编码set encoding=utf-8设置默认编码为 UTF-8
    禁用备份文件set nobackup
    set noswapfile
    不生成备份文件(如 file~ 或 .swp
    快捷键映射自定义 Leader 键let mapleader = ","将 Leader 键设为逗号
    快速保存/退出nnoremap <Leader>w :w<CR>
    nnoremap <Leader>q :q<CR>
    按 ,w 保存,,q 退出
    分屏操作nnoremap <Leader>v :vsplit<CR>
    nnoremap <Leader>s :split<CR>
    垂直/水平分屏
    插件管理Vim-Plug 插件管理器call plug#begin('~/.vim/plugged')
    Plug 'preservim/nerdtree'
    call plug#end()
    插件安装示例(运行 :PlugInstall 安装)
    主题与外观颜色主题colorscheme desert使用 desert 主题
    真彩色支持set termguicolors启用终端真彩色(需终端支持)

    懒人配置:

                   大家直接到gitee,搜索“Vim ForCpp”上面有专门针对Centos7的懒人配置方案,很简单。 


    总结:

    通过本讲对yum/aptvim的探索,我们撕开了Linux高效运维的第一层帷幕——工具的本质是思维的延伸

    记住,工具的价值不在其本身,而在与如何被人类使用。下一站,我们将深入更多核心工具(如gcc/g++,make),继续用代码编织Linux的无限可能。我们下期见。

    相关文章:

    Linux 第六讲 --- 工具篇(一)yum/apt与vim

    前言&#xff1a; 经过前五讲对Linux基础指令与权限系统的系统学习&#xff0c;相信你已经能在命令行中自如地穿梭于文件丛林&#xff0c;精准调配权限密钥。但真正的Linux玩家&#xff0c;绝不会止步于基础操作的重复劳作。 从今天起&#xff0c;我们将打开Linux的"瑞士…...

    xml 和 yaml 的区别

    XML 和 YAML/YML 是两种常用的数据序列化格式&#xff0c;用于存储和读取结构化数据。以下是它们的核心区别和使用方法&#xff1a; 1. 格式特性对比 特性XMLYAML/YML语法复杂度标签嵌套&#xff0c;结构严格缩进分层&#xff0c;更简洁可读性较低&#xff08;冗余标签&#…...

    1.67g 雨晨 22635.5305 Windows 11 企业版 23H2 极速增强版

    五一特别制作 &#xff08;主要更新简述&#xff09; 全程由最新YCDISM2025装载制作 1、可选功能&#xff1a; 添加&#xff1a; Microsoft-Windows-LanguageFeatures-Basic-en-us-Package Microsoft-Windows-LanguageFeatures-OCR-en-us-Package 2、功能增强&a…...

    【C++】类和对象(中)——默认成员函数详解(万字)

    文章目录 上文链接类的默认成员函数1. 构造函数(1) 什么是构造函数(2) 构造函数的使用 2. 析构函数(1) 什么是析构函数(2) 析构函数的使用(3) 小练习 3. 拷贝构造函数(1) 什么是拷贝构造函数(2) 拷贝构造函数的使用 4. 赋值运算符重载(1) 运算符重载(2) 运算符重载的简单应用(3…...

    Ubuntu18 登录界面死循环 Ubuntu进不了桌面

    今天碰到这个问题&#xff0c;真是把我恶心到了 网上很多方法都不靠谱&#xff0c;最后我还是自己摸索出一个方法 先进入终端 开机后在登陆界面按下shift ctrl F1&#xff08;或者F2&#xff0c;一直按&#xff09;进入tty命令行终端登陆后输入(本人的用户名为hp&#xff…...

    caffe适配cudnn9.6.0(ai修改代码踩坑)

    caffe适配cudnn&#xff1a;https://github.com/dyc2424748461/caffe &#xff08;测试一下&#xff0c;成没成&#xff0c;反正我看到它用gpu了&#x1f636;&#xff09; 因为突发奇想&#xff0c;想要玩easymocap&#xff0c;先是简单使用media跑通了一下&#xff0c;然后过…...

    【MySQL数据库】视图

    1&#xff0c;视图的基本介绍 视图是一个虚拟表&#xff0c;其内容由查询定义。与真实表一样的是&#xff0c;视图包含带有名称的列和行数据&#xff1b;与真实表不一样的是&#xff0c;视图本身并不在数据库中存储数据。视图的数据变化会影响到基表&#xff0c;基表的数据变化…...

    Linux日常使用与运维的AI工具全景调研:效率革命的终极指南

    Linux日常使用与运维的AI工具全景调研:效率革命的终极指南 引言:当Linux遇上AI,运维世界正在发生什么? 作为一名Linux系统管理员,你是否还在为以下问题困扰: 深夜被报警短信惊醒,却要手动排查复杂的系统故障?面对海量日志文件,像大海捞针一样寻找关键错误信息?重复…...

    Linux——线程(3)线程同步

    一、线程同步的引入 通过上面的抢票系统我们发现&#xff0c;有的线程&#xff0c;进行工作&#xff08;挂锁&#xff09;&#xff0c;当其马上结束工作&#xff08;解锁&#xff09;&#xff0c;发现外面有很多线程在排队等着加锁执行任务&#xff0c;这个线程解锁后就立马给…...

    Redis实现分布式锁

    分布式锁是分布式系统中解决资源竞争问题的重要机制。Redis凭借其高性能和原子性操作&#xff0c;成为实现分布式锁的热门选择。本文将详细介绍如何使用Java和Redis实现分布式锁&#xff0c;并重点讲解如何通过Lua脚本保证锁操作的原子性。 一、分布式锁的基本要求 一个可靠的…...

    JavaScript如何实现类型判断?

    判断一个数据的类型&#xff0c;常用的方法有以下几种&#xff1a; typeofinstanceofObject.prototype.toString.call(xxx) 下面来分别分析一下这三种方法各自的优缺点 typeof typeof的本意是用来判断一个数据的数据类型&#xff0c;所以返回的也是一个数据类型。但是会遇到下…...

    Spring MVC 与 FreeMarker 整合

    以下是 Spring MVC 与 FreeMarker 整合的详细步骤&#xff0c;包含配置和代码示例&#xff1a; 1. 添加依赖 在 pom.xml 中引入 Spring MVC 和 FreeMarker 的依赖&#xff08;以 Maven 为例&#xff09;&#xff1a; <!-- Spring Web MVC --> <dependency><gr…...

    设计模式简述(十五)观察者模式

    观察者模式 描述基本组件使用 描述 观察者模式&#xff0c;顾名思义就是一个对象观察着其他对象&#xff0c;一旦被观察的对象发生变化时&#xff0c;观察者对象也要做出相应动作。 其中&#xff0c;被观察者持有观察者的引用。由观察者主动注入被观察者内&#xff08;有点像…...

    用手机相册教我数组概念——照片分类术[特殊字符][特殊字符]

    目录 前言一、现实场景1.1 手机相册的照片管理1.2 照片分类的需求 二、技术映射2.1 数组与照片分类的对应关系2.2 数组索引与照片标签的类比 三、知识点呈现3.1 数组的基本概念3.2 数组在编程中的重要性3.3 数组的定义与初始化3.4 数组的常见操作&#xff08;增删改查&#xff…...

    字符串格式漏洞-[第五空间2019 决赛]PWN5

    之前其实也写了一篇&#xff0c;现在再来看。又有新的收获了&#xff0c;于是记录一下 前置知识 格式化字符串漏洞详解-CSDN博客 讲得很清楚&#xff0c;我就不照猫画虎了 实践 main函数 首先先办法泄露我们输入的地址 from pwn import * elfpathlevel0 # ioprocess(elfp…...

    数据结构学习之顺序表

    在C语言学习到一定阶段之后&#xff0c;接下来我们就进入到了数据结构的部分内容。 目录 数据结构与线性表 顺序表 顺序表分类&#xff1a; 接下来我们要写一段代码实现动态顺序表。 首先我们需要准备三个文件&#xff1a; 1.接下来我们要定义一个数据表 2.当创建号我们的…...

    AWS CloudFront全球加速利器:解析出海业务的核心优势与最佳实践

    对于寻求全球化发展的企业而言&#xff0c;AWS CloudFront凭借其强大的全球基础设施和边缘计算能力&#xff0c;成为加速出海业务的关键工具。本文将深入剖析CloudFront的核心优势&#xff0c;并探讨其如何助力企业突破跨境业务瓶颈&#xff0c;同时符合SEO优化策略&#xff0c…...

    Flowable7.x学习笔记(十六)分页查询我的待办

    前言 我的待办具体区分为3种情况&#xff0c;第一个就是办理人指定就是我&#xff0c;我可以直接审批&#xff1b;第二种就是我是候选人&#xff0c;我需要先拾取任务然后再办理&#xff1b;第三种是我是候选组&#xff0c;我需要切换到指定的角色去拾取任务再办理。如果任务已…...

    Annotate better with CVAT

    WIN10 配置标注环境 WSL + Docker Desktop 安装手册 https://docs.cvat.ai/docs/administration/basics/installation/ hebing@hello:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE cvat/ui …...

    QML Image 组件详解

    目录 引言相关阅读QML Image元素基础知识 项目结构示例解析1. 本地资源图像加载2. 网络图像加载3. 图像填充模式 应用主结构 总结下载链接 引言 本文将介绍QML中Image元素的基本用法和关键特性&#xff0c;包括加载本地资源图像、处理网络图像、以及调整图像的填充模式。通过一…...

    BOFZ 緩衝區溢出shell脚本檢測工具

    地址:https://github.com/MartinxMax/bofz BOFZ BOFZ 是一款簡單的緩衝區溢出掃描器&#xff0c;旨在檢測指定可執行文件中的緩衝區溢出漏洞。 此工具可用於快速測試應用程序或二進制文件中是否存在常見的安全缺陷&#xff0c;特別是那些由於對用戶輸入處理時邊界檢查不當而引…...

    【Dify系列教程重置精品版】第五章:Dify配置Ollama

    上一章我们在Dify上尝试配置了“月之暗面”。这一章我们在Dify上配置另一个模型“Ollama”。 什么是ollama呢?简单来说:它允许用户在个人计算机或服务器上快速部署和管理多种开源大语言模型,如 Llama3、Phi3、Gemma2 等,而无需依赖昂贵的云服务或专业的技术背景。 反正就是…...

    RISC-V AIA SPEC学习(四)

    第五章 Interrupts for Machine andSupervisor Levels 核心内容​​ 1.主要中断类型与默认优先级:​​ 定义了机器级别(M-level)和监管者级别(S-level)的标准中断类型(如MEI、SEI、MTI等)。默认优先级规则:本地中断(如软件/定时器)优先级高于外部中断,RAS事件(如低/高…...

    Leetcode刷题报告2——双指针法

    文章目录 前言[15. 三数之和](https://leetcode.cn/problems/3sum/)题干题解知识点总结 [42. 接雨水](https://leetcode.cn/problems/trapping-rain-water/)题干题解 前言 这部分总共是4道题&#xff0c;我就挑两道比较典型的题写一下博客吧。 双指针法的核心思路是通过合理的…...

    线段树原理和代码详解

    目录 线段树维护的信息类型 线段树的结构 线段树的初始化 线段树的功能&#xff1a; 单点修改&#xff0c;区间查询 区间修改&#xff0c;区间查询 以下内容均为个人见解&#xff0c;如有不足还请指出&#xff0c;作者会及时修改&#xff01; 期待大家的点赞、收藏、评论&…...

    xray-poc编写示例

    禁止未授权扫描和测试行为&#xff01;&#xff01;&#xff01; 1. SQL 时间盲注检测 (Time-Based Blind SQLi) name: generic/time-based-sqli rules:- method: GETpath: "/product?id1 AND (SELECT 1 FROM (SELECT SLEEP(5))a)--"expression: |response.status…...

    [2-01-01].前端开发工具

    前端学习大纲 一、VsCode: 1.1、下载地址 https://code.visualstudio.com/ 1.2.插件安装 为方便后续开发&#xff0c;建议安装如下插件 1.3.创建项目 先创建一个空的文件夹&#xff0c;如project_xxxx。然后打开vscode&#xff0c;再在vscode里面选择 File -> Open Fol…...

    自动化实现web端Google SignUp——selenium

    案例&#xff1a;自动化获取Google注册页面——selenium 前言 提示&#xff1a;通过案例掌握selenium语法 涉及技术&#xff1a;Python Selenium 在本文中&#xff0c;我们将通过一个实际案例来学习如何使用Selenium自动化工具模拟Google账号注册流程。这个案例涵盖了Selen…...

    如何阅读GitHub上的深度学习项目

    一、前期准备&#xff1a;构建知识基础 1. 必备工具与环境 开发工具&#xff1a; IDE&#xff1a;VS Code&#xff08;推荐&#xff0c;轻量化插件丰富&#xff0c;如 Python、PyTorch 插件&#xff09;、PyCharm&#xff08;适合大型项目&#xff09;。版本控制&#xff1a;…...

    【LeetCode 热题 100】3.无重复字符的最长子串:详解滑动窗口解法

    &#x1f4cc; 原题链接&#xff1a;Longest Substring Without Repeating Characters &#x1f4d6; 一、题目描述 给定一个字符串 s&#xff0c;请你找出其中不含有重复字符的最长子串的长度。 示例&#xff1a; 输入: s "abcabcbb" 输出: 3 解释: 最长不重复子…...

    Android12 Rom定制设置默认语言为中文

    Android12 Rom定制设置默认语言为中文 1.前言&#xff1a; 最近在做客制化定制时需要默认语言为中文&#xff0c;而且可以切换输入法&#xff0c;之前讲解过在ROM中如何设置默认输入法&#xff0c;这里就不展开了&#xff0c;其实这个需求很简单&#xff0c;就是调试的时候发现…...

    【设计模式】GoF设计模式之备忘录模式(Memento Pattern)

    设计模式之备忘录模式 Memento Pattern V1.0核心概念角色代码示例程序运行结果代码讲解 适用场景 V1.0 核心概念 备忘录模式的核心是定义一个备忘录类&#xff08;Memento&#xff09;&#xff0c;这个类的实例能够表示发起人类&#xff08;Originator&#xff09;的一种状态…...

    springboot分层打包,减少重复构建和传输的开销

    在 Spring Boot 中&#xff0c;分层打包&#xff08;Layered Packaging&#xff09; 是一种优化策略&#xff0c;特别针对 容器化部署&#xff08;如 Docker&#xff09; 的场景设计。它的核心思想是将应用的不同部分&#xff08;依赖、资源、代码等&#xff09;划分为独立的层…...

    Linux——虚拟地址空间

    1.虚拟地址空间 进程地址空间又叫虚拟地址空间 我们大家知道程序在运行时使用的空间被划分为多个不同的区域&#xff0c;每个区域都有不同的作用 正文代码&#xff1a;存放程序的可执行代码 通常都是只读的初始化数据&#xff1a;未初始化数据堆区&#xff1a;用于动态分配内存…...

    GPU虚拟化实现(七)

    GPU虚拟化实现(七) 章节回顾进程管理资源限制和环境变量利用率监控线程信号处理退出处理代码具体运作流程怎么限制SM的总结章节回顾 在上一章,分析了项目的主要代码模块功能:共享内存和初始化、GPU 内存管理、GPU 利用率管理以及锁机制,在这一章将继续分析其他的代码模块…...

    【QNX+Android虚拟化方案】137 - msm-5.4 Kernel U盘 插入中断、枚举、匹配完整流程详解

    【QNX+Android虚拟化方案】137 - msm-5.4 Kernel U盘 插入中断、枚举、匹配完整流程详解 1. HUB提交中断URB给HCD控制器,URB完成回调函数为 hub_irq()2. U盘插入后,触发运行 hub_irq() 中断回调函数2.1 高通 DWC3 Host HCD 初始化流程2.2 urb->complete(urb) 中断回调流程…...

    分布式锁的几种实现

    前几天看一个面试视频&#xff0c;提到了分布式锁一直想写写&#xff0c;但奈何考试太多&#xff0c;直到今天才有时间。好啦&#xff0c;开始今天的文章吧。 一.定义 分布式锁&#xff1a;当多个进程不在同一个系统中(比如分布式系统中控制共享资源访问)&#xff0c;用分布式…...

    Android 解绑服务问题:java.lang.IllegalArgumentException: Service not registered

    问题与处理策略 问题描述 在 Android 项目中&#xff0c;解绑&#xff08;unbindService()&#xff09;一个服务&#xff08;Service&#xff09;时&#xff0c;报如下错误 java.lang.IllegalArgumentException: Service not registered问题原因 错误表明在解绑服务时&…...

    注册登录页面项目

    关系型数据库地址&#xff1a;C:\Users\ASUS\AppData\Local\Temp\HuaweiDevEcoStudioDatabases\rdb #注册页面register.ets import dataRdb from ohos.data.rdbconst STORE_CONFIG {name: weather4.db } const TABLE_NAME weather_info const SQL_CREATE_TABLE CREATE TAB…...

    从 Python 基础到 Django 实战 —— 数据类型驱动的 Web 开发之旅

    主题简介&#xff1a; 本主题以 Python 基础数据类型为核心&#xff0c;结合 Django 框架的开发流程&#xff0c;系统讲解如何通过掌握数字、字符串、列表、元组、字典等基础类型&#xff0c;快速构建功能完善的 Web 应用。通过理论与实践结合&#xff0c;帮助学员从零基础 Py…...

    数字智慧方案5971丨智慧农业大数据平台解决方案(59页PPT)(文末有下载方式)

    详细资料请看本解读文章的最后内容。 资料解读&#xff1a;智慧农业大数据平台解决方案 在现代农业发展进程中&#xff0c;智慧农业大数据平台解决方案正成为推动农业变革的关键力量。这一方案从项目简介到大数据展示&#xff0c;各个环节紧密相连&#xff0c;致力于为农业发展…...

    MOOS-ivp使用(一)——水下机器人系统的入门与使用

    MOOS-ivp使用&#xff08;一&#xff09;——水下机器人系统的入门与使用 MOOS-ivp&#xff08;Marine Operational Oceanographic System for Intelligent Vehicle Planning&#xff09;是专为水下机器人&#xff08;如AUV&#xff09;设计的开源框架。类似于ROS&#xff0c;…...

    【网络服务器】——回声服务器(echo)

    作用 实现回声服务器的客户端/服务器程序&#xff0c;客户端通过网络连接到服务器&#xff0c;并发送任意一串英文信息&#xff0c;服务器端接收信息后&#xff0c;执行数据处理函数&#xff1a;将每个字符转换为大写并回送给客户端显示。 客户端&#xff1a;发送字符信息 服…...

    IDEA在项目中添加模块出现Error adding module to project: null(向项目添加模块时出错: null)的解决方法

    解决方法 &#xff08;1&#xff09;打开当前项目的结构...

    (34)VTK C++开发示例 ---将图片映射到平面

    文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 演示如何将图片作为纹理贴图到一个平面上。 这段代码的功能是使用 VTK&#xff08;Visualization Toolkit&#xff0…...

    微软与Meta大幅增加人工智能基础设施投入

    每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

    华为云服务器VoceChat在线聊天室部署

    目录 1. 项目介绍2. 准备条件3. Docker环境部署3.1 安装Docker&#xff08;CentOS 7&#xff09;3.2 安装Docker Compose3.3 Docker常用命令 4. 创建配置文件4.1 创建工作目录4.2 创建docker-compose.yml文件4.3 保存配置文件 5. 部署运行5.1 启动服务5.2 检查服务状态5.3 防火…...

    ERP系统(技术面)知识积累

    本文为本人在准备某公司信息技术类岗位的面试时所作的笔记&#xff0c;该公司有技术面&#xff0c;此岗位入职后负责的是ERP系统的运行和维护&#xff0c;所以可能会问ERP系统相关的问题。故我写此文以做准备。 ERP简介 ERP&#xff0c;全称Enterprise Resource Planning&…...

    Python学习笔记(第三部分)

    接续 Python.md 文件的第三部分 类 类的创建的基本使用 创建一个类 class Dog(): 文档字符串&#xff1a;这是一次模拟小狗的简单尝试 def __init__(self,name,age):self.name nameself.age agedef sit(self):print(self.name.title() " is now sitting.")def ro…...

    【浅尝Java】Java简介第一个Java程序(含JDK、JRE与JVM关系、javcdoc的使用)

    &#x1f35e;自我激励&#xff1a;每天努力一点点&#xff0c;技术变化看得见 文章目录 Java语言概述Java是什么Java语言的重要性Java语言发展简史Java语言特性 第一个Java程序main方法示例运行Java程序JDK、JRE、JVM之间的关系注释基本规则注释规范 标识符关键字 Java语言概述…...