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

【Linux】拆分详解 - 常见指令和权限理解

文章目录

  • 前言
  • 一、常用指令
    • 1. 基本查看与路径跳转
      • 1.1文件与目录
      • 1.2 ls 指令(显示文件)
      • 1.3 pwd (查看当前目录)
      • 1.4 clear (清屏)
      • 1.5 whoami (查看用户名)
      • 1.6 cd(跳转路径)
      • 1.7 指令的本质
    • 2. 文件的增删查改
      • 2.1 对文件属性(外壳)
        • touch(创建文件)
        • mkdir(创建目录)
        • rmdir(删除空目录)
        • rm(删除)
        • stat(查看acm时间)
        • man(指令手册)
        • tree(树状图展示目录结构)
        • cp(拷贝)
        • mv(移动)
      • 2.2 重定向
        • 2.2.1 Linux设计理念
        • 2.2.2 概念与性质
      • 2.3 对文件内容
        • echo(打印)
        • cat(查看文件内容 - 初级)
        • more(查看文件内容 - 高级)
        • less(查看文件内容 - 终极)
        • head(查看文件头部内容)
        • tail(查看文件尾部内容)
      • 2.4 管道
    • 3. 其他
      • 3.1 与时间相关
        • cal(显示日历)
        • date(显示时间)
      • 3.2 搜索
        • find(检索文件)
        • grep(文件内检索)
      • 3.3 打包与压缩
        • zip(压缩)
        • unzip(解压)
        • tar(压缩/解压)
      • 3.4 其他
        • bc(计算器)
        • uname(获取电脑软硬件信息)
        • 重要的热键
  • 二、shell命令以及运行原理
  • 三、Linux权限
    • 1. 权限的概念
    • 2. 文件权限
      • 2.1 访问者的分类(人)
      • 2.2 文件类型和访问权限(事物属性)
      • 2.3 文件权限值的表示方法
      • 2.4 访问权限的相关设置方法
        • chmod
        • chown
        • chgrp
        • file
        • umask
      • 2.5 目录的权限
      • 2.6 粘滞位
      • 2.7 权限相关细节问题
  • 总结


前言

文章细分了各个知识点,可在目录中快速跳转
本文将解析linux常见的对文件进行增删查改等一系列操作的指令和文件权限相关知识,同时插入讲解一些常见概念。


一、常用指令

1. 基本查看与路径跳转

1.1文件与目录

  • 文件

    文件 = 文件属性 + 文件内容

    • 文件属性:文件名、文件类型、文件的创建时间等
    • 因此我们对文件的操作都可以归为两类,一类是对文件属性,一类是对文件内容
  • 目录

    可以粗略理解为window中的“文件夹”。

    1. 任何目录下都默认具有两个隐藏目录...

      .表示当前路径
      ..表示上一级路径

    2. 相对路径./...... 表示从.(当前路径)开始向下级路径访问

    3. 路径分隔符:在window中我们使用\ , 而linux中使用/

      1. 两个路径分隔符之间一定是一个目录
      2. 路径最末端,一定是一个普通文件或者目录

1.2 ls 指令(显示文件)

语法ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
常用选项:

  • ls -l ,查看详细的文件属性
  • ls -a ,格外显示隐藏文件(以.开头的文件)

1.3 pwd (查看当前目录)

显示用户当前所在的目录

1.4 clear (清屏)

清空屏幕显示的内容

1.5 whoami (查看用户名)

查看当前登陆的用户名

1.6 cd(跳转路径)

在这里插入图片描述

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

语法 : cd [路径](可使用绝对路径与相对路径)
功能:改变工作目录。将当前工作目录改变到指定的目录下。
常用选项:

  • cd - 跳转到上一次访问的路径

  • cd ~ 跳转到家目录(usr,每个用户都拥有独立的家目录)

    window的桌面本质是一个文件夹,存放在家目录(一般在C盘,名为“用户”)中,当用户开机登录时流程如下:

    1. 确认用户名
    2. 根据用户名找到该用户家目录下的桌面文件夹
    3. 将桌面文件夹图形化显示

1.7 指令的本质

  • 指令的本质就是程序,安装/卸载就是把可执行程序拷贝/删出到系统路径下。
  • which 指令,可以打印出指定的指令名称在系统中存放的路径。可以用来检验指令是否存在
    在这里插入图片描述
  • alias 指令,用于重命名指令。我们注意到使用which查看 ls 时,显示了上图红线代码,再显示ls所在路径,这就是系统默认对ls进行了重命名,使其显示的内容带有颜色。还有常用的系统自带的llls -l)也是同理。
    在这里插入图片描述

2. 文件的增删查改

2.1 对文件属性(外壳)

touch(创建文件)

语法 : touch [文件名]
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件 。

  • 不能创建目录
mkdir(创建目录)

语法 : mkdir [选项] [目录名]
功能:在当前目录下创建一个名为 “xxx”的目录
常用选项:

  • –p (目录名)/(目录名)/... 可以一次创建多个目录,每一个目录都在前一个目录下创建。
rmdir(删除空目录)

语法 : rmdir [-p] [目录名]
功能:删除空目录,不能是文件
常用选项:

  • remdir -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm(删除)

语法 : rm [选项] [文件名或目录名]
功能:删除文件或目录
常用选项:

  • 删除普通文件,若用户为root,需要二次确认输入y(yes)/ n(no)

    -f 跳过二次确认

  • -r 删除目录(非空为空均可)

    -rf 跳过二次确认

  • rm (前缀)*(后缀) 删除当前目录下所有文件。

    * :一个通配符,匹配任意文件名

stat(查看acm时间)

查看超详细的文件属性,如文件的acm时间(即最后一次访问,最后一次修改文件内容,最后一次修改文件属性)。

man(指令手册)

语法 : man [选项] 命令
功能:查找linux中指令的解析

  • 云服务器读者可以输入代码yum -y install man-pages 恢复被精简的man man 指令,该指令可查看man本身作为查找工具的指令的用法,如语法 man [对应数字选项] man 使用对应选项的范围进行查找
    在这里插入图片描述
    1 普通的命令
    2 系统调用, 如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
    3 库函数, 如printf,fread4是特殊文件,也就是/dev下的各种设备文件
    5 文件的格式, 比如passwd, 就会说明这个文件中各个字段的含义
    6 给游戏留的, 由各个游戏自己定义
    7 附件和一些变量, 比如向environ这种全局变量在这里就有说明
    8 系统管理用的命令, 这些命令只能由root使用,如ifconfig
tree(树状图展示目录结构)

语法 : tree
功能:以树状图形式打印当前目录(简易的图形化页面)

  • 安装:yum -y install tree
  • 使用时,如果打印如根目录,会由于文件过多疯狂打印,对于这种指令失控的情况,连续使用ctrl + c,可以终止运行
cp(拷贝)

语法cp [选项] [源文件或目录] [目标文件或目录] (/重命名) ,可使用绝对和相对路径,如果想重命名拷贝的文件,可以在目标路径后加上 / [新名] 。
功能:复制文件或目录
常用选项:

  • -r 递归处理,将指定目录下的文件与子目录一并处理,需要二次确认

    -rf 跳过二次确认

  • 同一目录下不能存在同名文件

mv(移动)

语法mv [选项] [原文件或目录] [目标路径 / 新文件名] (/新名) ,可使用绝对和相对路径,如果想重命名文件,可以在目标路径后加上/ [新名] 。
功能:移动文件或者将文件改名

  • 当第二个参数类型是文件时,mv命令完成文件重命名
  • 第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

2.2 重定向

2.2.1 Linux设计理念

设计理念:一切皆文件
将各种东西都看作文件,对文件进行操作,这样可以使系统以统一的方式进行管理。如对于显示器,我们想把内容打印到显示器上,在linux中的操作就是向显示器对应的文件中写入内容。

2.2.2 概念与性质
  1. 输出重定向:​ ​>

    • 概念:改变写入的方向(文件)。

    • 使用方法:指令名 >

    • 示例:如 echo 指令本来是用来在显示器上打印数据,由设计理念可知,其实是对显示器文件进行写入。使用重定向后,由向显示器文件写入变为对普通文件的写入,此时“hello linux” 作为文本内容存储到了text文件中,这就是改变了写入的方向(文件),由于是输出操作,所以叫输出重定向。

    • 性质:

      1. 清空文件:每次重定向,都会清空文件内容再进行写入 > 文件名
      2. 创建新文件:不存在文件时,会创建一个空文件 > 文件名
      3. 与C语言关系:相当于fopen (“text.txt”,“w”) + fclose
        追加重定向>>​ 不清空文件,在原文件末尾新增操作。相当于C语言中的fopen (“text.txt”,“a”) + fclose
      # echo "hello linux" #输出到显示器
      # echo > text.txt    #输出到text文件
      
  2. 输入重定向<

    • 概念:同上,只不过为输入操作。
    • 使用方法:指令名 <

2.3 对文件内容

echo(打印)

语法echo [内容]
功能:打印文本到显示器

  • 与C关系:相当于 printf 。
cat(查看文件内容 - 初级)

语法cat [选项][文件名]
功能:查看目标文件的内容
常用选项:

  • -n : 附加输出行号

  • -s : 存在连续空行时,只显示一行空行

  • 与C关系:相当于 fopen(“文件名” , “r”)+ fclose

  • 缺点:只适合显示小型文件,行数多的文件不利于查看

more(查看文件内容 - 高级)

语法more [选项][文件]
功能:同cat,打印满屏幕后会停下,输入回车可进行逐行下翻
常用选项:

  • q : 执行后,按q退出
  • -n : 附带行号
less(查看文件内容 - 终极)

语法 less [参数][文件]
功能:与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
常用参数:

  • -i : 忽略搜索时的大小写
  • -N : 显示行号
  • /字符串 :向下搜索“字符串”的功能
  • ?字符串 :向上搜索“字符串”的功能
  • n :重复前一个搜索(与 / 或 ? 有关)
  • N :反向重复前一个搜索(与 / 或 ? 有关)
  • q :退出查看
head(查看文件头部内容)

语法 head [参数][文件]
功能: 显示文件头部内容至标准输出(默认显示前10行)
常用参数:

  • -数字 :指定显示前X行
tail(查看文件尾部内容)

语法 tail [参数][文件]
功能: 显示文件尾部内容至标准输出(默认显示倒数10行),常用于查看日志信息
常用参数:

  • -数字 :指定显示倒数X行

2.4 管道

语法: (入口) | (出口) 将数据由入口传输到出口,可用于级联多条指令

  • 举例:查看文件中间部分的内容。先用 head 提取前X行(使尾部刚好包含需要的中部内容),再用 tail 提取尾部内容。
# head -20 filename | tail -5

3. 其他

3.1 与时间相关

cal(显示日历)

语法 cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:

  • -3 : 显示系统前一个月,当前月,下一个月的月历
  • -j : 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y : 显示当前年份的日历
date(显示时间)

语法 date +[OPTION]... [+FORMAT]
功能: 打印当前时间
常用参数:

  1. 指定格式打印时间 date +%Y:%m:%d (后接 “+” 号,附带任意参数,各参数之间可使用任意分隔符使观感清晰)
    %H : 小时(00…23)
    %M : 分钟(00…59)
    %S : 秒(00…61)
    %X : 相当于 %H:%M:%S
    %d : 日 (01…31)
    %m : 月份 (01…12)
    %Y : 完整年份 (0000…9999)
    %F : 相当于 %Y-%m-%d
  2. 时间戳
    时间 -> 时间戳:date +%s
    时间戳 -> 时间:date -d@[时间戳]

3.2 搜索

find(检索文件)

语法 find [路径名] [选项]
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)
常用选项:

  • -name :按照文件名查找文件
grep(文件内检索)

语法 grep [选项] [要查找的字符串] [文件]
功能 :在文件中搜索字符串,将所在的行打印出来
常用选项:

  • -i :忽略字母大小写的不同,都搜索出来
    -n :顺便输出行号
    -v :反向选择,即显示出没有 ‘搜寻字符串’ 内容的那一行

3.3 打包与压缩

打包和压缩的意义 :

  1. 缩小体积,减少所占的磁盘空间;下载快
  2. 不易丢失文件(传输大量文件时,可能会发生丢包,在众多文件中寻找丢失的很麻烦,如果打包和压缩,只要压缩包传输成功,所有文件都传输成功)
zip(压缩)

语法 zip [选项] [name.zip] [目录或文件名]
功能 :将目录或文件压缩成zip格式
常用选项:

  • -r : 递归处理,将指定目录下的所有文件和子目录一并处理
unzip(解压)

语法 unzip [name.zip] [选项]
常用选项:

  • -d 路径名 : 解压到指定路径下
tar(压缩/解压)

语法tar [选项] name.tgz [文件名/目录名]
常用选项:

  • -czf :压缩
    -cvzf :格外显示压缩过程
  • -xzf : 解压
    -xvzf :格外显示解压过程

3.4 其他

bc(计算器)

功能:很方便的进行浮点运算
示例:临时计算,直接打印出结果

# echo 1+1 | bc

在这里插入图片描述

uname(获取电脑软硬件信息)

语法uname [选项]
功能: 用来获取电脑和操作系统的相关信息
常用选项:

  • -a或–all :详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
重要的热键
  • [Tab] :具有『命令补全』和『档案补齐』的功能
  • [Ctrl] + c :终止当前指令,可能需要连按几次

二、shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

  1. 是什么?
    从技术角度,Shell的最简单定义:命令行解释器,是介于用户与操作系统之间的软件

    • 将使用者的命令翻译给内核(kernel)处理。同时,将内核的处理结果翻译给使用者。
    • 对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
      shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
  2. 为什么?

    ①:用户不善于与内核之间交互 (对用户自身技术水平要求太高)
    ②:保护内核 (Shell可以对用户的请求进行合法性检查,明显的违规操作不予执行)

  3. 怎么做?
    【Shell 是所有外壳程序的总称,Bash是其中具体的一款外壳程序】 Bash创建一个子进程执行指令(防止指令对Bash造成影响),返回对应信息给用户

三、Linux权限

1. 权限的概念

  • 权限:就是通过一定的条件,拦住一部分人,给另一部分人权利来访问某种资源。有无或者能还是不能的问题。Linux权限 = 人 + 事物属性

  • Linux下有两种用户:超级用户(root)、普通用户

    • 超级用户:可以在linux系统下做任何事情,不受权限限制
    • 普通用户:受权限限制
      超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
    • 指令:su [用户名],可切换用户

在这里插入图片描述

2. 文件权限

2.1 访问者的分类(人)

所有者:u—User(创建文件的用户默认为所有者)
所属组:g—Group(默认为所有者所在组)
其它用户:o—Others (除了所有者和所属组外的所有人)

2.2 文件类型和访问权限(事物属性)

在这里插入图片描述
① 文件类型
在这里插入图片描述
②基本权限

  • 读 (r) :Read对文件而言,具有读取文件内容的权限;

  • 写 (w) :Write对文件而言,具有修改文件内容的权限;

  • 执行 (x):execute对文件而言,具有执行文件的权限;

    注意:文件具有可执行权限不代表就可以被执行,前提是这个文件必须是可执行文件(.txt文件就是个文档,你就算具有可执行权限也无法执行,.exe文件才是可执行文件)

  • - : 表示不具有该项权限

2.3 文件权限值的表示方法

①字符表示法
在这里插入图片描述
②8进制数值表示法
在这里插入图片描述

2.4 访问权限的相关设置方法

chmod

语法chmod [参数] 权限值 文件名

功能: 设置文件的访问权限常用选项

参数选项:

  • R 递归修改目录文件的权限

    说明:只有文件的拥有者和root才可以改变文件的权限

权限值格式:

  1. 用户表示符 +,-,= 权限字符

    • 用户符号:

      u:拥有者

      g:拥有者同组用

      o:其它用户

      a:所有用户

    • +:向权限范围增加权限代号所表示的权限

      -:向权限范围取消权限代号所表示的权限

      =:向权限范围赋予权限代号所表示的权限(清空对应用户的原先权限,只保留=后的权限)

    • 权限字符

      如2.3 所述,r w x

    • 实例

      # chmod u+r text.txt
      # chmod g-w text.txt
      # chmod o=x text.txt #other 只保留x权限
      
  2. 三位8进制数字

    • 每一位分别对应 usr,group,other的权限(如2.3 中rwx的八进制数)

    • 实例说明:

      # chmod 664 text.txt  #usr,group的权限为6,既为rx-;other的权限为4,即为r--   
      # chmod 640 text.txt  #同理
      
chown

语法chown [参数] 用户名 文件名

功能:修改文件的拥有者

实例

  • # chown newusr text.txt  #修改text.txt文件的拥有者 为 newusr
    #chown -R newusr filegroup #递归修改目录filegroup中的所有文件的拥有者
    
chgrp

语法chgrp [参数] 用户组名 文件名

功能: 修改文件或目录的所属组

参数选项:

  • R :递归修改目录文件的权限

实例

  • # chgrp newusr text.txt #修改文件text.txt的所属组 为newusr(一个用户默认自成一个组)
    
file

语法file [选项] 文件或目录...

功能: 辨识文件类型

参数选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容
umask

语法umask 权限值

功能: 查看或修改文件掩码

  • 文件掩码:

    新建文件夹默认权限=0666

    新建目录默认权限=0777

    但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask(等同于mask - umask)

实例

  • # umask  #查看
    # umask 044 #设置
    

2.5 目录的权限

  • 可读权限(r): 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容(不影响进入)
  • 可写权限(w):如果目录没有可写权限, 则无法在目录中创建文件、删除文件、修改文件名
  • 可执行权限(z):如果目录没有可执行权限, 则无法进入

2.6 粘滞位

  • 根据上面的目录权限,我们可以发现一个问题:

    只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉?

  • 为了解决这个不科学的问题, Linux引入了粘滞位的概念,

    当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

    1. 超级管理员删除

    2. 该目录的所有者删除

    3. 该文件的所有者删除

  1. 添加粘滞位:chmod +t 目录名

    在这里插入图片描述
    在这里插入图片描述

  2. 添加后不符合要求的人不能删除
    在这里插入图片描述在这里插入图片描述

2.7 权限相关细节问题

  1. 对用户身份的判定只进行一次

    • 判断顺序:拥有者 -> 所属组 -> other

    • 举例:

      一个文件的usr和group是同一个人(张三)时,如果文件对应的usr无写权限,而group有写权限,则此时张三没有对该文件的写权限

  2. 更改文件拥有者/所属组

    1. 需要别人同意

      如果将文件的拥有者/所属组修改为其他用户,则需要对方同意后才可以修改(对方必须在线)(root不需要对方同意),很好理解,如果有人想扔黑锅给别人是不能这么简单的

    2. 只有修改者 为拥有者/所属组/root时才能进行修改

总结

本文介绍了Linux的常用指令与常见概念,旨在帮助初学者快速入手使用Linux,熟悉Linux的指令通用方法和常见的文件相关问题。

尽管文章修正了多次,但由于水平有限,难免有不足甚至错误之处,敬请各位读者来评论区批评指正

相关文章:

【Linux】拆分详解 - 常见指令和权限理解

文章目录 前言一、常用指令1. 基本查看与路径跳转1.1文件与目录1.2 ls 指令&#xff08;显示文件&#xff09;1.3 pwd &#xff08;查看当前目录&#xff09;1.4 clear &#xff08;清屏&#xff09;1.5 whoami &#xff08;查看用户名&#xff09;1.6 cd&#xff08;跳转路径&…...

UniHttp 框架,请求http接口

项目案例下载地址: https://download.csdn.net/download/jinhuding/89902024 1.快速开始 2.1引入依赖 <dependency><groupId>io.github.burukeyou</groupId><artifactId>uniapi-http...

C++20中头文件ranges的使用

<ranges>是C20中新增加的头文件&#xff0c;提供了一组与范围(ranges)相关的功能&#xff0c;此头文件是ranges库的一部分。包括&#xff1a; 1.concepts: (1).std::ranges::range:指定类型为range&#xff0c;即它提供开始迭代器和结束标记(it provides a begin iterato…...

设计一个html+css+js的注册页,对于注册信息进行合法性检测

综合使用HTML、JavaScript和CSS进行注册页面设计&#xff0c;实现以下若干功能&#xff1a; 注意整个页面的色调和美观使用FramesetTable布局&#xff08;div也可&#xff09;对用户ID和用户名、口令不符合条件及时判断对口令不一致进行及时判断&#xff08;34的及时判断&#…...

语音识别——使用Vosk进行语音识别

文章目录 前言一、Vosk模型1.准备好所需要的语音包2.下载使用 二、使用示例1.文件读取示例2.结合麦克风演示 总结 前言 如何编译Vosk请参照之前的文章&#xff0c;ubuntu编译kaldi和vosk Vosk是语音识别开源框架&#xff0c;支持二十种语言 - 中文&#xff0c;英语&#xff0…...

element ui中el-image组件查看图片的坑

比如说上传组件使用el-image-viewer组件去看,如果用错了,你会发现,你每次只能看一张图片 <template><div><el-upload action="#" list-type="picture-card" :auto-upload="false" :file-list="fileList"@change=&qu…...

LabVIEW水质监测系统

在面对全球性的海洋污染问题时&#xff0c;利用先进技术进行水质监测成为了保护海洋环境的关键手段之一。开发了一种基于LabVIEW的海洋浮标水质监测系统&#xff0c;该系统能够实时监测并评估近海水域的水质状况&#xff0c;旨在为海洋保护和污染防治提供科技支持。 项目背景 …...

SpringMVC之 文件上传和下载

1. 文件上传 1.1 前端注意事项 文件上传操作&#xff0c;前端的表单项需要如下三项设置&#xff1a; &#xff08;1&#xff09;input标签的type属性应设置为file&#xff0c;并且注意不要在input标签中设置value属性&#xff0c;因为这可能导致文件上传不成功&#xff1b; …...

LeetCode Hot 100:二分查找

LeetCode Hot 100&#xff1a;二分查找 35. 搜索插入位置 思路 1&#xff1a;lower_bound class Solution { public:int searchInsert(vector<int>& nums, int target) {return lower_bound(nums.begin(), nums.end(), target) - nums.begin();} };思路 2&#xf…...

打包方式-jar和war的区别

1、jar包 JAR包是类的归档文件&#xff0c;与平台无关的文件格式&#xff0c;其实jar包就是java的类进行编译生成的class文件进行打包的压缩包。 JAR以ZIP文件格式为基础&#xff0c;与ZIP不同的是&#xff0c;JAR不仅用于压缩和发布&#xff0c;还用于部署和封装库、组件和插…...

【论文+源码】基于spring boot的垃圾分类网站

创建一个基于Spring Boot的垃圾分类网站涉及多个步骤&#xff0c;包括环境搭建、项目创建、数据库设计、后端服务开发、前端页面设计等。下面我将引导您完成这个过程。 第一步&#xff1a;准备环境 确保您的开发环境中安装了以下工具&#xff1a; Java JDK 8 或更高版本Mav…...

【C++ STL 模板类】pair 键值对

文章目录 【 1. pair 对象的创建 】【 2. pair 对象的赋值 】【 3. pair 对象的比较 】【 4. pair对象成员的互换】 C STL 标准库提供了 pair 类模板&#xff0c;专门用来将 2 个普通元素 first 和 second&#xff08;可以是 C 基本数据类型、结构体、类自定的类型&#xff09;…...

paddleocr使用FastDeploy 部署工具部署 rknn 模型

在 PC 端转换 pdmodel 模型为 rknn 模型和在板端使用百度飞浆开发的 FastDeploy 部署工具部署 rknn 模型 以下内容是在 PC 端系统为 Ubuntu20.04&#xff0c;板端系统为ubuntu20.04 的环境下实现的 描述&#xff1a; 官网地址 rknn_zoo RKNPU2_SDK …...

Apple Vision Pro市场表现分析:IDC最新数据揭示的真相

随着AR/VR技术逐渐成熟并被更多消费者接受,2024年第二季度(Q2)成为这一领域的一个重要转折点。根据国际数据公司(IDC)发布的最新报告,整个AR/VR市场在本季度经历了显著的增长。接下来,我们将深入探讨Apple Vision Pro在这股增长浪潮中的具体表现。 市场背景 2024年Q2,…...

Mybatis-04.入门-JDBC

一.JDBC 二.原始的JDBC程序代码 &#xff08;不做要求&#xff09; Test public void testJdbc() throws Exception {//1. 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2. 获取连接对象String url "jdbc:mysql://localhost:3306/mybatis";Str…...

拥抱云开发的未来:腾讯云数据库、云模板与AI智能化的应用场景探索

本文目录&#xff1a; &#x1f4a1;前言&#xff1a;技术的边界在不断延展&#x1f31f;目录&#x1f308;什么是腾讯云云开发&#xff1f;&#x1f4be;云数据库&#xff1a;让数据成为开发的稳固基石&#x1f951;数据&#xff0c;不再只是数据 &#x1f6e0;云模板&#xf…...

新手铲屎官求推荐,噪音低的宠物空气净化器应该用哪款

当初选择养橘猫就是因为我听到有人说橘猫不容易掉毛才养的&#xff0c;谁知道养了之后和传闻中的不一样&#xff0c;真正的让我明白了什么叫“眼见为实”。 主要是猫掉毛就掉毛&#xff0c;只要我能清理的我都会清理&#xff0c;只要能保证养猫的同时还能保持家里卫生干净就行…...

玄机平台-应急响应-webshell查杀

首先xshell连接 然后进入/var/www/html目录中&#xff0c;将文件变成压缩包 cd /var/www/html tar -czvf web.tar.gz ./* 开启一个http.server服务&#xff0c;将文件下载到本地 python3 -m http.server 放在D盾中检测 基本可以确认木马文件就是这四个 /var/www/html/shell.p…...

LeetCode Hot 100:图论

LeetCode Hot 100&#xff1a;图论 200. 岛屿数量 思路 1&#xff1a;深度优先搜索 class Solution { private:const int dx[4] {-1, 0, 1, 0};const int dy[4] {0, 1, 0, -1};public:int numIslands(vector<vector<char>>& grid) {if (grid.empty())retu…...

tracert和ping的区别

1、简介 tracert&#xff08;在 Windows 系统中&#xff09;和 traceroute&#xff08;在 Unix/Linux 系统中&#xff09;以及 ping 都是网络诊断工具&#xff0c;但它们的功能和用途有所不同&#xff1a; ping&#xff1a; 用途&#xff1a;ping 是一个网络工具&…...

回归、分类模型的评估指标

1. 分类模型的评估指标 评估机器学习模型的好坏至关重要&#xff0c;它帮助我们判断模型的性能、稳定性以及在实际问题中的应用效果。不同类型的机器学习任务&#xff08;分类、回归、聚类等&#xff09;有不同的评估指标。以下是详细介绍常见的模型评估指标&#xff0c;尤其针…...

k8s中如何将pod的标准输出日志输出到一个文件

假设容器的启动命令是 grpcserver&#xff0c;我们将通过修改启动命令&#xff0c;将 grpcserver 的标准输出重定向到指定的日志文件 /var/log/app/grpcserver.log&#xff0c;同时保留标准输出以便 Kubernetes 日志系统仍然能够捕获日志。 目标&#xff1a; 将 grpcserver 的…...

软件工程文档规范要点总结

需求分析文档 1.目标用户应该体现为用例图里的执行者&#xff08;执行者要标明是哪一类用户&#xff09; 2.用例模型由功能概述得到&#xff0c;用例顺序图由基本交互过程得到&#xff0c;分析类图由顺序图得到 3.执行者和用例之间的关系&#xff1a;执行、触发、驱动 用例…...

Django 序列化serializers

在Django中&#xff0c;序列化通常指的是将数据库中的模型数据转换为JSON、XML或其他格式的过程。Django提供了内置的序列化工具&#xff0c;可以通过django.core.serializers模块进行序列化操作。 当你使用Django的序列化功能时&#xff0c;可以序列化以下两种对象类型&#…...

混个1024勋章

一眨眼毕业工作已经一年了&#xff0c;偶然进了游戏公司成了一名初级游戏服务器开发。前两天总结的时候&#xff0c;本来以为自己这一年没学到多少东西&#xff0c;但是看看自己的博客其实也有在进步&#xff0c;虽然比不上博客里的众多大佬&#xff0c;但是回头看也算是自己的…...

Java Spring Boot 项目开发示例指南

开发和扩展一个 Java Spring Boot 项目可以分为几个步骤。以下是一个简单的指南&#xff0c;涵盖项目的创建、基本功能的实现、以及扩展的示例。 第一步&#xff1a;创建 Spring Boot 项目 使用 Spring Initializr 创建项目: 访问 Spring Initializr选择项目的配置&#xff08…...

Python学习路线:从新手到专家

引言 Python 是一种高级编程语言&#xff0c;以其简洁清晰的语法而闻名&#xff0c;被广泛应用于Web开发、数据科学、人工智能、自动化脚本等领域。无论你是编程初学者还是有经验的开发者&#xff0c;Python 都是一个值得学习的语言。本文将提供一份详细的Python学习路线图&am…...

R实验——logistic回归、LDA、QDAKNN

数据集介绍&#xff1a; mpg&#xff0c;miles per gallon即油耗&#xff0c;这个数据集来自卡内基梅隆大学维护的StatLib库。1983年美国统计协会博览会使用了该数据集。这个数据集是对StatLib库中提供的数据集稍加修改的版本。根据Ross Quinlan(1993)在预测属性“mpg”中的使…...

Java 使用 itextpdf 自定义 生成 pdf

Java 使用 itextpdf 自定义 生成 pdf maven 依赖实现docker 服务 字体文件找不到问题 maven 依赖 <!-- iText 7 --> <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.2.3</version…...

Rust小练习,编写井字棋

画叉画圈的游戏通常指的是 井字棋&#xff08;Tic-Tac-Toe&#xff09;&#xff0c;是一个简单的两人游戏&#xff0c;规则如下&#xff1a; 游戏规则 棋盘&#xff1a;游戏在一个3x3的方格上进行。玩家&#xff1a;有两个玩家&#xff0c;一个用“X”表示&#xff0c;另一个…...

制作商城网站模板/seo站长工具查询

CMMI培训心得为期五天的CMMI培训在学员中的疑惑中结束了.为什么说是在疑惑中结束,并不是因为我们对课程不明白,而是如何更好的将课程中先进的管理方法应用到我们的实际工作中,管理并优化我们的实际工作引发了众多学员的困惑.现实工作中,传统的工作流程和工作方法对于企业的影响…...

男女做那个什么的视频网站/奇葩网站100个

local machine/software/microsoft/windows/currentversion/explorer/namespac 建立主键 745FFO40-5081-101B-9F08-00AA002F954E 再把默认的主键值设为"回收站",重启 转载于:https://www.cnblogs.com/linbaba/archive/2013/01/30/2883224.html...

godaddy托管wordpress/不能搜的超级恶心的关键词

就是这个问题&#xff0c;求知道怎么解决的帮个忙&#xff0c;谢谢回复讨论(解决方案)点击details看看details点击后&#xff0c;里面一大串英文&#xff0c;不知道怎么解决可以把英文截图出来看看An error occurred while collecting items to be installedsession context wa…...

做网站+利润/百度推广关键词排名规则

在控件的KeyPress事件中编写如下代码&#xff1a; if (e.KeyChar (char)13) {e.Handled true;SendKeys.Send("{TAB}"); }转载于:https://www.cnblogs.com/swtseaman/archive/2011/05/05/2037184.html...

邢台贴吧/搜索引擎网站推广如何优化

编辑基于this帖子&#xff0c;一个比我上一个更好的解决方案可能是&#xff1a;import matplotlib.pylab as plimport matplotlibimport numpy as nppl.close(all)x np.linspace(0.019, 0.021, 4)y np.linspace(0.09, 0.10, 4)s np.random.randint(10, 200, 4)fig pl.figur…...

长春集团网站建设/北京seo相关

基于注意力&#xff08;Attention&#xff09;机制的端到端系统&#xff0c;又被称为LAS端到端构架。 [6] W. Chan, N. Jaitly, Q. Le, O. Vinyals. Listen, Attend and Spell: A Neural Network for Large Vocabulary Conversational Speech Recognition. ICASSP 2016. 来自 &…...