Linux 相关知识

news2025/11/1 4:33:54

文章目录

      • 一、shell相关
        • 快捷键
        • 变量相关:
          • 变量
          • 查看系统中的变量 env export和set
          • 变量的键盘读取:read宣告变量的类型,array和declare
      • 二、文件和目录
        • 文件属性
        • 更改文件属性和权限
        • 目录权限
        • 文件和目录的默认权限
        • 文件隐藏属性
        • 实体链接和符号链接
        • 压缩和打包
        • ulimit设置文件相关系统资源
      • 三、文件目录管理
        • 目录
        • 可执行文件路径的变量:PATH
      • 四、查找
        • 指令查找:
        • 文件名的搜寻:

一、shell相关

快捷键

      [ctrl]+a:让光标移动到整个指令串的最前面。[ctrl]+e 移动到最后面。

      [ctrl]+u:从光标处向前删除指令串。[ctrl]+k:向后删除指令串。

      [ctrl]+d:表示键盘输入结束,推出当前命令行环境。

      [ctrl]+l:清屏(类似clear) [ctrl]+c:结束运行(kill)

变量相关:

变量

      在 Bash shell 中,每一个变量的值都是字符串,无论给变量赋值的时候有没有使用引号,值都会以字符串的形式存储。

  1. 得到一个变量的值:

    需要在变量名称前面加上$,或者是以${变量}的方式来取用。例如:echo $HOME或者echo ${HOME}

  2. echo显示变量的值,unset取消变量的设置

  3. 声明(设置)一个变量:

    如:myname=abc 左边为变量,右边为其值。等号两边不能有空白字符;变量名不能以数字开头;变量值中有空白字符时,可以采用双引号或单引号将内容都括起来;反斜杠 \ 用来转义;$(指令)表示得到该指令的运行结果;在一个变量中追加内容时,采用:将$变量名${变量名}和追加的内容相连接,建议采用${变量名}形式。如:

    $ uu=$uuyes
    $ echo uu
    
    $ uu=${uu}yes
    $ uu=$uuyes
    yes
    $ uu=$uuyes
    $ uu=$uuyes
    yesyes
    

    在PATH变量中增加内容时,通过冒号 :来进行连接。如将一个目录加入到PATH环境变量:(通常大写字母为系统默认变量)

    $ PATH=${PATH}:/home/dmtsai/bin
    
  4. 在变量的设置当中,单引号和双引号的区别在于双引号碰到 $时会取它后面变量的值,不管是否带大括号:

    $ echo ${uu}
    yesyes
    $ myuu="$uu hh"
    $ echo ${myuu}
    yesyes hh
    $ myuu='$uu hh'
    $ echo ${myuu}
    $uu hh
    
查看系统中的变量 env export和set

      采用envexport来列出系统中的环境变量;set查看所有变量(含环境变量与自定义变量)。

      当在bash下面执行另一个bash命令时,当前的环境就会切换到第二个bash中去(即子程序),那原本的bash就会处于休眠状态(sleep),子程序仅会继承父程序的环境变量,而无法使用父程序中的自定义变量。此时可以通过export来将父程序中的变量给子程序使用:

$ uu=987
$ bash
$ echo $uu

$ exit
exit
$ export uu
$ bash
$ echo $uu
987
$ exit
exit
$ export
declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
declare -x DISPLAY="localhost:10.0"
declare -x HOME="/home/cedric"
...
declare -x XDG_SESSION_ID="14"
declare -x XDG_SESSION_TYPE="tty"
declare -x uu="987"
变量的键盘读取:read宣告变量的类型,array和declare
  1. read 用来读取键盘输入,常用在 shell script 的撰写中。

read [-pt] variable

-p:后面可以接提示字符 -t:后面接等待的秒数,超时会自动停止输入。

如下:读取键盘输入内容到变量 att 中。

$ read att
abc
$ echo $att
abc
$ read -p "please input:" -t 10 att
  1. declare 用来宣告变量的类型,如果 declare 后面没有接任何参数,它会像 set 一样显示出所有变量内容。

declare [-aixr] variable

-a 将 variable 变量定义为阵列(array)类型;-i 将变量定义为整数(integer)类型;-x 将该变量定义为环境变量(类似于 export);-r 将变量设置为 readonly 类型,该变量内容不可更改,也不能 unset。

如下:不指定类型的时候,如 1+2 是一个字符串,而不是一个计算式。

$ sum=10+20
$ echo ${sum}
10+20
$ declare -i sum=10+20
$ echo ${sum}
30

声明 sum 为环境变量,可以通过 export 来查看。 通过 +x 使其变为非环境变量,通过 declare -p v 来查看一个的类型。

$ declare -x sum
$ export | grep sum
declare -ix sum="30"
$ declare +x sum
$ declare -p sum
declare -i sum="30"
  1. array 阵列,即数组。

bash 只支持一维数组形式。使用如下;

$ var[1]="a b"
$ var[2]="b c"
$ var[3]="c d"
$ echo "${var[1]},${var[2]},${var[3]}"
a b,b c,c,d

二、文件和目录

文件属性

$ ll
total 20
drwxrwxr-x  5 cedric cedric 4096 Aug 17 05:30 ./
drwxr-xr-x 16 cedric cedric 4096 Aug 17 05:28 ../
-rw-rw-r--  1 cedric cedric    0 Aug 17 05:30 a.txt
drwxrwxr-x  6 cedric cedric 4096 Aug 16 03:51 CMake/

       第一栏代表这个文件的类型(第一个字符)与权限(后九个字符),其中:

  • 当类型为[d],则是目录;当为[-],则是文件,若是[l],则是链接文件(link file);若是[b],则是设备文件里面可供储存的周边设备(可随机存取设备);若是[c],则是设备文件里面的序列设备,例如键盘,鼠标(一次性读取设备)。

  • 权限三个为一组,且均为"rwx"的三个参数的组合,分别表示可读、可写和可执行。- 表示无相应权限。第一组为文件所有者的权限,第二组为所有者所在群组的权限,第三组为其余账号的权限。

    第二栏表示有多少个文件名链接到此节点(i-node)

    第三栏表示这个文件的“拥有者账号”

    第四栏表示这个文件的所属群组

    第五栏表示这个文件的容量大小,默认单位为Bytes

    第六栏表示这个文件的创建日期或者是最近的修改日期

    第七栏表示这个文件的名称,. 开头的代表此文件为“隐藏文件”

更改文件属性和权限

  1. chgrp:改变文件所属群组 change group 。被改变的群组名称必须要在 /etc/group 文件内存在

  2. chown:改变文件所有者 change owner。owner 必须是已经存在系统中的账号,也就是在 /etc/passwd 这个文件中有记录的 owner 名称,才能改变

  3. chmod:改变文件的权限,SUID,SGID,SBIT等等属性

    通过数字来更改权限:rwx 通过二进制来表示,最大为 111 表示可读可写可执行,此时十进制数值为 7。比如更改文件 a.txt 的权限为:" rwxr-xr-- " 对应的二进制为:111101100,三个二进制为一组,对应的二进制值为:754 。相应的指令为:

    $ chmod 754 a.txt
    $ ll a.txt
    -rwxr-xr--  1 cedric cedric    0 Aug 17 05:30 a.txt
    

目录权限

  1. r(read contents in directory)可以读取该目录下的文件名,即通过 ls 将该目录的内容列表显示出来

  2. w(modify contents of directory) 包括:创建新的文件与目录;删除已经存在的文件与目录(不论该文件的权限为何!);将已经存在的文件或目录进行更名;搬移该目录内的文件、目录位置等等。

  3. x(access directory)代表的是使用者可以进入该目录,其能够成为工作目录。

    要开放目录给任何人浏览时,应该至少也要给与 r 及 x 的权限,但 w 权限不可随便给;

    能否读取到某个文件内容,跟该文件所在的目录权限也有关系(目录至少需要有 x 的权限)。

文件和目录的默认权限

      默认情况下:

  1. 当使用者创建文件时,默认没有可执行(x)权限,亦即只有 rw 这两个权限,也就是最大为 666,故默认权限为:-rw-rw-rw-

  2. 当使用者创建目录时,由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777,故默认权限为:drwxrwxrwx

      umask:表示默认权限应该减去的权限(第一位表示特殊权限,在此不做关注)。如下:当 umask 为 002 时,文件的默认权限就会从 -rw-rw-rw-变为-rw-rw-r--。表示其余用户没有可写权限。

$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx
$ touch a
$ ll -d a b
-rw-rw-r--  1 cedric cedric    0 Aug 17 05:30 a
drwxrwxr-x  2 cedric cedric    0 Aug 17 05:30 b/

文件隐藏属性

  1. chattr(设置文件隐藏属性) change attribute。使用方法:chattr [±=][ASacdistu] 文件或目录名称。通常使用的选项参数为 +/- i 或者 +/- a。

      a:当设置 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有 root 才能设置这个属性。

      i:i 比较厉害,它可以让一个文件”不能被删除、改名、设置链接、也无法写入或新增数据!“对于系统的安全性有相当大的助益!只有 root 能设置此属性。

# touch a
# chattr +i a
# rm a
rm: cannot remove 'a': Operation not permitted
# chattr -i a
# rm a
  1. lsattr(显示文件隐藏属性)

  2. file(观察文件类型)

实体链接和符号链接

  1. Hard Link(实体链接,硬式链接或实际链接)

    由于每个文件都会占用一个 inode,文件内容由 inode 的记录来指向;想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。

    也就是说,其实文件名只与目录有关,但是文件内容则与 inode 有关。那么想一想,有没有可能有多个文件名对应到同一个 inode 号码呢?有的!那就是 hard link 的由来。

    所以简单的说:hard link 只是在某个目录下新增一笔文件名链接到某个 inode 号码的关联记录而已。

    ll -i 文件名:-i 表示列出文件的 inode 号)

    通过 ln 原文件名 (可选的)实体链接文件名 在当前目录中创建一个其他目录中文件的硬链接:

    $ touch a
    $ ll -i a
    3695289 -rw-rw-r-- 1 cedric cedric 0 Aug 18 03:20 a
    $ ln a
    ln: failed to create hard link './a': File exists
    $ cd projects/
    $ ln ~/a
    $ ll -i a ~/a
    3695289 -rw-rw-r-- 2 cedric cedric 0 Aug 18 03:20 a
    3695289 -rw-rw-r-- 1 cedric cedric 0 Aug 18 03:20 /home/cedric/a
    $ rm a
    $ ll ~/a
    -rw-rw-r-- 1 cedric cedric 0 Aug 18 03:20 /home/cedric/a
    

    可以发现,两个文件名的所有相关信息都会一摸一样(除了文件名之外),创建硬链接时,不会新增 inode 和存放内容的 block,只是新增了一条当前文件名到 inode 的链接而已;不论你使用哪个”文件名“来编辑,最终的结果都会写入到相同的 inode 与 block 中,因此均能进行数据的修改;删除硬链接文件,只会删除该链接,不会删除原文件,除非当链接数变为 0。

    • 创建硬链接时,其实还是可能会改变系统的 block 的,那就是当你新增的这笔数据刚好将目录的 block 填满时,就可能会新加一个 block 来记录文件名关联性,而导致磁盘空间的变化!不过,一般 hard link 所用掉的关联数据量很小,所以通常不会改变 inode 与磁盘空间的大小!

    • 不能链接目录。因为如果使用 hard link 链接到目录时,链接的数据需要连同被链接目录下面的所有数据都创建链接,这样造成的复杂度很高,故不支持!

  2. Symbolic Link(符号链接)

    相对于 hard link,Symbolic link 可就好理解多了,基本上,Symbolic link 就是创建一个独立的文件,而这个文件会让数据的读取指向它 link 的那个文件的文件名!(这个独立的文件中存放的是目标文件的全路径文件名而已)

    由于只是利用文件来作为指向的动作。所以,当来原文件被删除之后,symbolic link 的文件会”打不开“。实际上就是找不到原始”文件名“而已!

    通过 ln -s 原文件/目录名 (可选的)符号链接文件/目录名 在当前目录创建一个其他目录中文件或者目录的符号链接:

    $ ls
    a projects
    $ cd projects/
    $ ln -s ~/a b
    $ ll -i ~/a b
    3670035 lrwxrwxrwx 1 cedric cedric 14 Aug 18 03:51 b -> /home/cedric/a
    3695289 -rw-rw-r-- 1 cedric cedric  0 Aug 18 03:20 /home/cedric/a
    

    可以看出这是两个独立的文件,链接文件 b 中的内容是原文件的文件名,b 的大小为 14 字节,而原文件的文件名:/home/cedric/a 总共有14 个英文,每个英文占用 1 个字节,故大小总计 14 字节。

    读取过程:通过链接文件中的内容,得到真正的文件名,从而链接到正确的目录中去取得目标文件的 inode,最终就能读取到正确的数据了。

压缩和打包

      打包:tar ;压缩:gzip,bzip2,xz

      压缩指令大多仅能针对单一文件来进行压缩,虽然 gzip,bzip2,xz也能够针对目录来进行压缩,不过,这两个指令对目录的压缩指的是”将目录内的所有文件“分别”进行压缩“的动作!而非在 Windows 系统中采用类似于 winrar 将好多数据直接压缩成一个文件。

      将多个文件或目录包成一个大文件的指令功能,即”打包指令“,在 Linux 中对应的是 tar 指令。tar 可以将多个目录或文件打包成一个大文件,同时还可以通过 gzip/bzip2/xz 的支持,将该文件同时进行压缩!

      常用的解压缩命令:

      tar -xvf 文件名.tar.xz

      tar -zxvf 压缩文件名.tar.gz

      常用的压缩和打包命令:

      tar -cvf mydir.tar mydir/ 打包目录成为一个文件

      gzip myfile 压缩文件

      tar -czvf mydir.tar.gz mydir/ 打包目录成为一个文件后进行压缩

ulimit设置文件相关系统资源

      ulimit [-SHacdfltu] [配额]

      选项和参数:

  1. -H:hard limit,严格设置,不可超过此值

  2. -S:soft limit,警告设置,超过此值时会有警告信息提示。

  3. -a:后面不接任何选项和参数,可以列出所有的限制额度

  4. -c:当程序发生错误时,系统可能会将该程序在内存中的信息写成文件,这种文件被称为核心文件(core file)。此参数用来设置核心文件的最大容量

  5. -f:此 shell 可以创建的最大文件大小(一般可设置为2GB),单位为KBytes

  6. -d:程序可使用的最大段(segment)容量

  7. -l:可用于锁定(lock)的内存量

  8. -t:可使用的最大 CPU 时间,单位为妙

  9. -u:单一使用者可以使用的最大程序(process)数量。

三、文件目录管理

目录

      特殊目录

  • .代表此层目录

  • ..代表上一层目录

  • -代表前一个工作目录

  • ~代表”目前使用者身份“所在的主文件夹

      相关命令:

  • cd:变换目录 change directory

  • ls:ll 列出详细信息 -d 选项仅列出文件或者目录本身(常用,比如:ll -d a ls -d a)

  • pwd:显示当前所在目录 Print Working Directory -P 选项可以让我们取得正确的目录名称,而不是以链接文件的路径来显示

  • mkdir:创建一个新的目录 make directory -p 选项:确保目录名称存在,如果目录不存在的话就重新创建一个 可以通过它来创建多个目录: mkdir -p a/b/c/d

  • rmdir:删除一个空的目录 仅能删除空的目录。 常采用 rm -r来代替

  • cp(复制文件或目录) -a 或者 -p 选项能够复制原文件的所有属性和权限。(默认情况下仅仅只是原文件的备份)

  • rm(移除文件或目录)

  • mv(移动文件与目录,或重命名)

可执行文件路径的变量:PATH

      查阅文件属性的指令 ls 的完整可执行程序文件名:/bin/ls(这是绝对路径),但是可以在任何地方执行 ls 命令的原因在于环境变量 PATH,当在执行一个指令时,系统会按照 PATH 中的设置去每个 PATH 定义的目录下搜寻该可执行文件,如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件,那么先搜寻到的同名指令先被执行!

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

四、查找

指令查找:

      which(寻找可执行文件的所在目录) 用法:which [-a] command 选项或参数:

-a :列出在 PATH 目录中可以找到的所有指令,不止第一个

$ which ls
/usr/bin/ls
$ which -a ls
/usr/bin/ls
/bin/ls

文件名的搜寻:

      通常 find 不很常用,因为它直接搜寻硬盘,速度慢。一般先使用 whereis 或者是 locate 来检查,如果真的找不到了,再采用 find。因为 whereis 只找系统中某些特定目录下面的文件而已,locate 则是利用数据库来搜寻文件名,所以它俩速度相当快速,因为没有实际搜寻硬盘内的文件系统状态。

      whereis

      whereis [-bmsu] 要查找的文件或者目录名

选项与参数:

-l:列出 whereis 会去查询的几个主要目录,即只在这几个目录下面进行查找。

-b:只找 binary 格式的文件

-m:只找在说明文档 manual 路径下的文件

-s:只找 source 来源文件

-u:搜寻不在上述三个项目当中的其他特殊文件

      locate:查找包含 keyword 的文件名

      locate [-ir] keyword

选项和参数:

-i:忽略大小写的差异;

-c:不输出文件名,仅计算找到的文件数量

-l:仅输出几行的意思,如输出五行则是 -l 5

-S:输出 locate 所使用的数据库文件的相关信息,包含该数据库记录的文件/目录数量等

-r:后面可接正则表达式的显示方式

      locate 是通过数据库来搜寻的,这也意味着它可能会错过最近创建或修改的文件,因为数据库可能不是最新的。当然通过 updatedb 可以手动更新数据库,但也需要数分钟时间。

      find

      find 的常见使用方法:find / -name *nam* 表示在 / 目录下搜寻名称中包含有 nam 的文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/970172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【单片机】有人 WH-LTE-7S1 4G cat1 模块连接服务器,教程,记录。GPRS模块连接服务器教程。socket编程。

文章目录 4G cat1 模块封装引脚名称功能拓扑图串口模块调试WH-LTE-7S1公网服务器建立python程序服务服务器程序WH-LTE-7S1 模块连接服务器与多个模块建立TCP长连接的服务器程序 本文主要介绍了一个4G Cat1模块,该模块具有多种功能和特性。文章接下来展示了4G Cat1模…

手把手教你Typora大纲如何显示序号(支持六级标题栏序号)

1 打开偏好设置 2 新建 base.user.css文件 3 复制代码(重启typora生效): /************************************** * Header Counters in TOC **************************************//* No link underlines in TOC */ .md-toc-inner { …

第四章:照相机模型与增强实现

文章目录 第四章:照相机模型与增强实现4.1 针孔照相机模型4.1.1 照相机矩阵4.1.2 三维点的投影4.1.3 照相机矩阵的分解4.1.4 计算照相机中心 4.2 照相机标定4.3 以平面和标记物进行姿态估计4.4 增强现实4.4.1 PyGame 和 PyOpenGL4.4.2 从照相机矩阵到 Open…

PMD 检查java代码:运行过程中只需要赋值一次的局部变量可以用final修饰(LocalVariableCouldBeFinal)

https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_codestyle.html#localvariablecouldbefinal 如果一个局部变量在运行过程中只需要赋值一次,那么可以定义为final的。 属性ignoreForEachDecl可以控制是否忽略对for-each声明中的局部变量的检查&#xff0c…

DBService基础原理

一、DBService简介 DBService是一个高可用性的关系型数据库存储系统,适用于存储小量数据(10GB左右),比如:组件元数据。DBService仅提供给集群内部的组件使用,提供数据存储、查询、删除等功能。 DBService是…

视频号如何插入带货商品链接进行变现

视频号目前是全腾讯的希望,视频号变现主要有6大模式 参与创作分成计划,也就是视频号底下广告分成,类似公众号文章的流量主,可以给大家看下收益,做的好的,收益还是非常可观的,只要作品有播放量&a…

一文讲清楚字符串搜索问题【朴素法】和【KMP算法】

文章目录 一、引入二、朴素解法2.1 朴素法介绍2.2 图解朴素法2.3 复杂度分析 三、KMP算法3.1 nextArr 数组介绍3.2 图解 KMP 算法3.2.1 原理3.2.2 实现 3.3 nextArr 数组求解3.4 复杂度分析 四、总结写在最后 一、引入 字符串搜索问题是字符串中重要的一类问题,该问…

C#通过ModbusTcp协议读写西门子PLC中的浮点数

一、Modbus TCP通信概述 MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC,I/…

什么是rem单位和em单位?它们有什么区别?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ rem 和 em 单位⭐ rem 单位(Root Em)⭐ em 单位⭐ 区别总结⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入…

.net core 上传文件大小限制

微软官网文档中给的解释是.net core 默认上传文件大小限制是30M&#xff0c;所以即便你项目里没有限制&#xff0c;这里也有个默认限制。 官网链接地址 总结了一下解决办法&#xff1a; 1.首先项目里添加一个web.config自定义配置文件 在配置文件中加上这段配置 <!--//…

2024年java面试--多线程(3)

系列文章目录 2024年java面试&#xff08;一&#xff09;–spring篇2024年java面试&#xff08;二&#xff09;–spring篇2024年java面试&#xff08;三&#xff09;–spring篇2024年java面试&#xff08;四&#xff09;–spring篇2024年java面试–集合篇2024年java面试–redi…

Echarts使用

Echarts使用 1.ECharts简介 ECharts是一个使用JavaScript实现的开源可视化库&#xff0c;可以流畅的运行在PC和移动设备上&#xff0c;兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)&#xff0c;底层依赖矢量图形库ZRender,.提供直观&#xff0c;交互丰富&am…

Spring Cloud--从零开始搭建微服务基础环境【四】

&#x1f600;前言 本篇博文是关于Spring Cloud–从零开始搭建微服务基础环境【四】&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;…

自然语言处理: 第十一章BERT(Bidirectional Encoder Representation from Transformers)

论文地址:[1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (arxiv.org) 理论基础 之前介绍GPT的搭建的方式的时候&#xff0c;将BERT与GPT进行了对比&#xff0c;我们可以知道BERT和GPT都是基于transformer架构下的分支&…

Android 1.2.1 使用Eclipse + ADT + SDK开发Android APP

1.2.1 使用Eclipse ADT SDK开发Android APP 1.前言 这里我们有两条路可以选&#xff0c;直接使用封装好的用于开发Android的ADT Bundle&#xff0c;或者自己进行配置 因为谷歌已经放弃了ADT的更新&#xff0c;官网上也取消的下载链接&#xff0c;这里提供谷歌放弃更新前最新…

PHP8数组的类型-PHP8知识详解

php 8 引入了对数组的类型提示&#xff0c;以帮助开发者更准确地定义和验证数组的结构。以下是 PHP 8 中支持的数组类型&#xff1a;索引数组、关联数组、混合类型数组。 1、索引数组 (Indexed arrays): PHP索引数组一般表示数组元素在数组中的位置&#xff0c;它由数字组成&a…

centos7关闭防火墙和selinux(内核防火墙)

centos7关闭防火墙和selinux&#xff08;内核机制或叫内核防火墙&#xff09; 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.关闭防火墙&#xff0c;centos7默认是firewalld #关闭 systemctl stop firewalld.service #关闭开机自启 systemctl disable firewalld.ser…

Opencv 图像金字塔----高斯和拉普拉斯

原文&#xff1a;图像金字塔----高斯和拉普拉斯 图像金字塔是图像中多尺度表达的一种&#xff0c;最初用于机器视觉和图像压缩&#xff0c;最主要用于图像的分割、融合。 高斯金字塔 ( Gaussian pyramid): 高斯金字塔是由底部的最大分辨率图像逐次向下采样得到的一系列图像…

Vue.js 报错:Cannot read property ‘validate‘ of undefined“

错误解决 起因&#xff0c;是我将elemnt-ui登录&#xff0c;默认放在mounted()函数里面&#xff0c;导致vue初始化就调用这个函数。 找了网上&#xff0c;有以下错误原因&#xff1a; 1.一个是你ref写错了&#xff0c;导致获取不了这个表单dom&#xff0c;我这显然不是。 2.…

基于改进莱维飞行和混沌映射的粒子群优化算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…