【Linux学习】(3)Linux的基本指令操作
前言
- 配置Xshell登录远程服务器
- Linux的基本指令——man、cp、mv、alias&which、cat&more&less、head&tail、date、cal、find、grep、zip&tar、bc、uname
- Linux常用热键
一、配置Xshell登录远程服务器
以前我们登录使用指令:
ssh 用户名@你的公网IP
其实可以不用指令登录,通过Xshell新建会话也可以登录。
配置步骤如下:
-
选择左上角的+号(新建)

-
在窗口配置你的公网IP,配置完成之后确定即可

-
配置成功之后:点击文件——》打开 就可以看到我们刚才新建的会话了

-
选择我们要登录的用户,点连接,第一次登录需要输入用户名(输入存在的用户名,并点击记住用户名)

-
现在就全部配置完成了,以后打开Xshell它就会弹出会话窗口,选择你要登录的会话即可

tip:今后我们学习一般都是使用普通账号登录了,不再使用root了,因为①root权限高没有什么报错,你的误操作他也不提示你;②你以后公司使用也一般是普通用户等。
二、Linux的基本指令
1、man指令
引入:Linux的命令有很多参数,我们不可以全记住,我们可以通过man指令查看联机手册获取帮助。
语法: man [选项] 命令
常用选项:
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- -a 将与命令匹配的所有章节文档的都显示出来(缺省从第一章开始搜索,搜到就停止,按q它会继续往后面搜索,直到所有章节都搜索完)
tip:
- 左上角的命令(num)中的num表示命令在num号手册查到的
- man手册是有编号的,分为1~8章,我们做应用开发一般只用到1 ~3章(第3章是查库函数的,我们一般只有来查C语言的库函数。为什么一般只查C语言——①Linux操作系统本身是由C语言写的,所以它带C语言的标准文档;②man说是在线的,其实是有点离线)
- 如果man不能查2~8章的命令,我们就需要安装man
- 例如:查不到C语言库函数printf
- 安装man:在root账号下输入指令安装:install -y man-pages
- 当我们不太清楚man手册的使用时,也可以man man来查(man也是一条指令)
- 按q退出man手册
使用示例:
- 一般我们使用就不携带选项了,直接man后面跟命令即可

- man num 命令:在指定的num章下搜索命令,使用场景:例如printf即是Linux的一条基本指令在第1章也是C语言的库函数在第3章,如果我们直接man printf想查的是它作为C语言库函数的文档是查不到,查到的是它作为Linux命令的文档,因为man默认从第1章开始查,查到就停止,想查printf作为C语言库函数的文档,需要指定在第3章查找

2、cp指令
前置准备:在讲解cp指令之前,我们先了解几条指令
- echo 字符串:在显示器打印字符串
- echo 字符串 > 目标文件:输出重定向——把本来应该打印到显示器的内容,打印到目标文件中
- cat 文件:在显示器打印文件内容
- 示例:
有了前置准备,我们正式开始学习cp指令
语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
常用选项:
- -i 或 --interactive 覆盖文件之前先询问用户
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -f 或 --force 强行复制文件或目录(不要询问我), 不论目的文件或目录是否已经存在
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
使用示例:
- 拷贝一个普通文件,可以拷贝到当前目录下,也可以拷贝到其他任意目录下。(注意:拷贝到同一目录下时,源文件名与目标文件必须不一样)
- 同一目录下的拷贝

- 不同目录下的拷贝

- 常识告诉我们不管是Linux还是Windows,同一个目录下,都不能存在同名文件(从应用角度解释:名字一样就不能标识该目录下的唯一性了)
- 同一目录下的拷贝
- 拷贝一个目录:因为目录是递归定义的,所以不能直接拷贝目录,需要携带-r选项

- cp携带-i选项时,当目标文件不为空覆盖目标文件之前会先询问用户

- 复制多个文件到目录:如果你同时指定两个以上源文件或目录,并且目标是一个已经存在的目录,则 cp 会将前面指定的所有源文件复制到目标目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。(拷贝一个文件或目录是,目标文件或目录可以不存在)

3、mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move(rename)files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标目录或文件名
功能: ①重命名文件或目录;②剪切文件或目录
常用选项:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
使用示例:
- 重命名:mv 源文件或目录 新文件名或目录名(即不存在)
- 重命名文件

- 重命名目录

- 重命名文件
- 剪切:mv 源文件或目录 路径
- 剪切文件

- 剪切目录

- 剪切文件
- 剪切并重命名:mv 源文件或目录 路径+新文件名或目录名
- 剪切并重命名文件

- 总结:可以认为所有的mv行为都是剪切并重命名,没有指定新名字就默认使用你自己原来的名字,路径后跟了新名字就使用你新的名字。
- 剪切并重命名文件
4、alias&which指令
补充:
- 如何看待指令?
- 指令和可执行程序都是可以被执行的——指令就是可执行程序!
- 我们在执行指令之前我们应该先做什么?
- 先在系统中查找对应的指令,指令一定是在系统的某一个位置存在的(存在于/usr/bin/目录下)。
tip:
- 指令是在系统中特定的路径下存在的,一定是某种可执行程序——C/C++/Python/shell……
- 指令的本质就是可执行程序和我们自己写的代码编译好的程序,没有本质区别
总结:指令的本质就是文件——可执行文件,直接安装到了系统的某种路径下
alias&which指令:
alias给指令取别名。
- 语法: alias 别名=‘命令’
- tip: ①alias在shell会话中定义的别名只会在当前会话有效,即alias具有临时性;②单纯的alias可以查看当前定义的所有别名;③别名持久化:为了使别名在每次新的 shell 会话中自动加载,你需要将 alias 命令添加到你的 shell 配置文件中,如 .bashrc 或 .bash_profile(对于 Bash shell)。
which查看命令在哪(它用于查找并显示给定命令的完整路径。当你在终端输入一个命令时,操作系统会根据环境变量 PATH 来查找命令的可执行文件。which 命令正是用来显示这个搜索过程的结果。)
- 语法: which [选项] 命令
- 一般我们使用不携带选项
使用示例:
- 之前我们学过ls -l等价于ll,这个ll就是ls -l的别名

- 取别名演示(虽然指令可以取别名,但是学习阶段尽量少用,因为我们是目的学习指令)

5、cat&more&less指令
补充:
- Linux下一切皆文件,凡是具有读写方法(方法为空也可以)的都可以视为文件。 例如:显示器——显示器只负责写,不负责读,所以它的读方法为空;键盘——键盘只负责读,不负责写,所以它的写方法为空;普通文件——一般都具有读写方法
- echo 字符串:默认把字符串写入到显示器文件中(tip:echo指令默认带回车换行,如果不想换行可以使用printf指令)
- 输出重定向:
- echo 字符串 > 目标文件:输出重定向——把本来应该写入到显示器文件的内容,写入到了普通文件中,这种行为我们称之为输出重定向。
- 注意:向目标文件进行写入的时候,覆盖写入(即分为两步:①清空文件;②写入新内容)
- 清空目标文件:> 目标文件
- 追加重定向:
- echo 字符串 >> 目标文件:追加重定向——打开文件,向文件尾追加写入,不会清空文件
- 输入重定向:
- 单纯的cat指令,后面什么都不写,它默认从键盘文件读取内容
- cat < 目标文件:输入重定向——本来应该从键盘文件读取,现在不用从键盘文件读取,从指定的文件读取
- 无论是输出重定向还是追加重定向时,如果写入的目标文件不存在,它会默认帮你创建文件。(输入重定向不可以)
- 生成大文本文件的脚本:
$ cnt=1; while [ $cnt -le 100000 ]; do echo "Hello! $cnt"; let cnt++; done > large.txt
cat指令:
语法: cat [选项] [文件]
功能: 查看目标文件的内容
常用选项:
- -b 对非空输出行编号
- -n 对输出的所有行编号
- -s 不输出多行空行
tip:
- 区分echo&cat&ls
- echo:向显示器文件写入字符串
- cat:向显示器文件写入文件内容
- ls:向显示器文件写入文件属性
- cat不适合看大文本,适合看小文本
使用示例:
- 常用选项使用示例

- cat不适合看大文本,因为cat会将文件所有内容一下全打印,会造成刷屏,不方便我们查看

more指令:
语法: cat [选项] [文件]
功能: 查看大文本的内容
常用选项:
- -n 跳到文件的前 n 行,如 more -5 会显示文件的前 5 行
- q 退出more
tip:
- more打印占满一屏就停止,然后,你可以按空格键向下滚动一页,或者按回车键向下滚动一行
- more 只能向后单向滚动(tip:针对文件可以按b返回上一页,但对管道无用)
使用示例:
- more打印占满一屏就停止,按回车继续向下打印

- 可以通过/子串从文件当前位置向后定位子串这个关键字

less指令:
语法: less [选项] [文件]
功能: less与more类似,也可以查看大文本的内容,但使用less可以随意浏览文件,而more仅能向后单向滚动,而且less在查看之前不会加载整个文件
常用选项:
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- q:退出 less
tip:
- more VS less:
- 加载方式:more是一次性全部把文件加载,只是一部分一部分的显示,而less在查看之前不会全部加载,而是根据用户的需要动态的加载内容,因此less在查看大文件时的初始响应熟读通常比more快
- 翻页:more可以向下翻页、翻行,但不支持向上翻页、翻行。less不仅可以使用上下方向键逐行滚动内容,还可以使用pageup和pagedown或空格键进行上下翻页。
- 搜索:more只能向下搜索,而在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
- 阅读到文件结束时,less不会退出,而more会
- less提供了更多的功能和更好的用户体验,所以一般在查看大文本时我们使用less
- less工具也是对文件或其它输出进行分页显示的工具,应该说是Linux正统查看文件内容的工具,功能及其强大
6、head&tail指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾
head指令:
- 语法: head [选项] [文件]
- 功能: head用来来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
- 选项:
- -n<行数> 指定显示的行数
tail指令:
- 语法: tail [选项] [文件]
- 功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
- 选项:
- -n<行数> 指定显示的行数(如果不指定 行数,则默认显示最后 10 行)
- -f 循环读取(实时跟踪文件的新增内容,类似于 tail -n 1 -f,常用于日志文件)
使用示例:
- head的使用示例:

- tail后指定文件,打印指定文件末尾内容:

- tail后不指定文件,管道的使用——假设你想查看某个命令的最后几行输出,可以将该命令的输出通过管道传递给 tail。例如我想查看d.txt文件中间行1000~1020内容。
- 临时文件法:

- 管道使用:

- 临时文件法:
补充:管道
- | 是一种符号,后面会被系统解释称为管道文件(输入内存级)
- 管道有一个入口一个出口,管道是用来传输资源的
管道可以级联多个命令,所以可以支持流水线工作
7、date指令
在讲解date时间指令之前,我们先来了解一下日志:
平时我们生活中的日记就是日志记录着我们生活中的点点滴滴,其中时间最重要。
在计算机世界中时间也非常重要,因为时间他可以在我们出现问题时,可以根据产生问题的时间点——时间会记录下你对应的行为从而很好的复原(即从时间我们可以知道这个问题是什么原因导致的,是什么人导致的)
所以日志在计算机中很重要,程序运行到自己的每一个关键时候,都要自己打日志。
日志:时间+日志等级+日志具体信息+其他信息,日志信息以行位单位打印,写入到文件中,这个文件就是日志文件。
date 指定格式显示时间:date +%Y-%m-%d_%H:%M:%S
date用法:date [OPTION]… [+FORMAT]
- 在显示方面,使用者可以设定显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
- %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
- 在设定时间方面
- date -s //设置当前时间,只有root权限才能设置,其他只能查看
- date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
- date -s 01:01:01 //设置具体时间,不会对日期做更改
- date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
- date -s “01:01:01 20080523″ //这样可以设置全部时间
- date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
- date -s “20080523 01:01:01″ //这样可以设置全部时间
- 时间戳
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的的午夜)开始所经过的秒数,不考虑闰秒。
- 时间是人为定义的
- 时间存在时差,例如美国和中国
- 时间戳单调递增,方便范围查找
时间->时间戳:date +%s
时间戳->时间:date -d @1508749502
使用示例:
- date显示当前时间,但是它显示的格式我们看着不太习惯,所以我们可以自己设定显示的格式,格式设定为一个加号后接数个标记(tip:标记之间不以空格做分隔符,会把它当做两个参数。一般年月日的分隔符我们喜欢用-时分秒的分隔符我们喜欢用:)

- 时间与时间戳之间的相互转换

8、cal指令
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
使用示例:
- cal查看当前月的日历,cal year查看当前年的日历

- -3 显示系统前一个月,当前月,下一个月的月历

9、find指令
语法: find 路径 选项
功能: 用于在文件树中查找文件,并做出相应的处理(可能访问磁盘)
常用选项:
- -name 按照文件名查找文件
tip:
- Linux下find命令在目录结构中搜索文件,并执行指定的操作
- Linux下find命令提供了相当多的查找条件,功能很强大、由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下
- 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限
- 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)
- 注意:普通用户只能在自己家目录下查找自己的文件,不在自己家目录中查找时可能会受权限约束,不让你查找(可以切换root),因为目录是一棵多叉树,它的查找时深度优先遍历方式。
- find&which&whereis
- find可以在自己的家目录下(指定路径)找任意的文件
- which只在系统指令所在路径下(/usr/bin/)找指令文件
- whereis在系统特定的路径下查找,即可以找到可执行程序,又可以找到手册,安装包压缩包等之类(介于find与which之间)
使用示例:
- find ~ -name 指定文件名:在家目录下查找所有与指定文件名相同的文件

- 普通用户只能在自己家目录下查找自己的文件,不在自己家目录中查找时可能会受权限约束,不让你查找(可以切换root),因为目录是一棵多叉树,它的查找时深度优先遍历方式

10、grep指令
语法: grep [选项] 搜索字符串 文件
功能: 行过滤工具——把文件打开,按行为单位把这个文件的内容读取到显示器文件中,不过有条件。即在文件中搜索子串,将找到的行打印出来。
常用选项:
- -i 忽略大小写的不同,即大小写视为相同
- -n 输出行号
- -v 反向选择,即显示出没有‘搜索字符串’内容的那一行
使用示例:
- -n 输出行号

- -i 忽略大小写的不同,即大小写视为相同

- -v 反向选择,即显示出没有‘搜索字符串’内容的那一行

- 与管道一起使用

- 多个文件过滤

11、zip&unzip和tar指令
什么是打包和压缩?
打包:如我们大学生每次回家就需要将所有东西打包到一个行李箱中;压缩:把东西放到行李箱中时,我们会尽量将其放得有规律,多放一些行李。
为什么要打包压缩?
- 能被打包压缩的,一定是一个整体,有多个文件组成的一个文件,不容易造成文件缺失
- 打包压缩,文件体积变小,下载时间变短 (储存占据空间变小)
打包和压缩的方案有很多种,这里我们就介绍zip和tar两种。
zip&unzip:
语法: zip 压缩文件.zip(打包和压缩之后的文件名) 目录或文件(即打包的文件)(unzip 压缩文件.zip -d 指定解压路径)
功能: 将目录或文件压缩成zip文件(unzip将zip压缩文件解压和解包)
常用选项:
- -r 递归处理,将指定目录下的所有文件和子目录一并处理
tar指令:
语法: tar [-cxtzjvf] 文件与目录 … 参数
功能: 打包/解包,不打开它,直接看内容——Linux最常用!
常用选项:
- -c 建立一个压缩文件的参数指令(create的意思)
- -x 解开一个压缩文件的参数指令
- -t 查看tarfile里面的文件
- -z 是否同时具有gzip的属性?即是否需要用gzip压缩?
- -j 是否同时具有bzip2的属性?即是否需要用bzip2压缩?
- -v 压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
- -f 使用档名,请留意,在f之后要立即接档名!不要再加参数!
- -C 解压到指定目录
使用示例:
- 注意:zip默认打包和压缩普通文件,不能直接打包和压缩目录
- 错误示例:直接打包目录,解压之后只能得到一个空目录

- 正确示例:打包目录需要携带选项-r,并且可以同时打包多个文件

- 注意:当我们输入zip/unzip指令时,如果出现command not found,即OS没有安装zip/unzip,①以root方式登录;②su/su-+root密码——》yum install -y zip unzip
- 错误示例:直接打包目录,解压之后只能得到一个空目录
- tar的选项很多,我们一般记住以下三个组合即可:
- tar czf xxx.tgz 需要打包的目录和文件(.tar.gz可省略为.tgz,.tar打包后缀,.gz压缩后缀)——打包压缩
- tar tzf xxx.tgz——预览
- tar xzf xxx.tgz——解压与解包

- tar携带-C选项,解压到指定目录

12、bc指令
Linux中可以使用bc命令很方便进行浮点数运算,相当与计算器
使用示例:
- bc——》计算器——》quit退出
- echo “运算” | bc

13、uname -r指令
语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息
补充说明: uname可显示Linux主机所用的操作系统的版本、硬件的名称等基本信息
常用选项:
- -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
- -r 输出体系结构
tip:x86_64==x64,x86==32
使用示例:

了解:
- free 查内存(-k以KB为单位,-m以MB为单位,-g以GB为单位)
- df -h 查磁盘
- lscpu 查CPU
14、常用热键
- [Tab]按键——具有命令补全和档案补齐的功能

- [Ctrl+c]按键——让当前的程序停掉
- [Ctrl+r]按键——历史命令搜索

- [Ctrl+d]按键——退出终端登录或退出用户(可以用于取代exit)
补充:
- nano:Linux下的记事本
- nano – version:检测是否安装了nano
- yum install -y nano:在root用户下安装nano
- nano 文件名:打开文件,在记事本下编写
- ctrl+r搜索历史命令,决定了,Linux系统一定记录了历史命令!history指令可以查看历史命令。
- Linux会默认记录最新的1000条历史命令
15、关机
语法: shutdown [选项]
常用选项:
- -h : 将系统的服务停掉后,立即关机
- -r : 在将系统的服务停掉之后就重新启动
- -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
tip:Linux操作系统(服务器),永远不关机!
16、以下命令作为扩展:(后期遇到再讲)
- 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
- 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
- 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
- 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
- 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
- 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
相关文章:
【Linux学习】(3)Linux的基本指令操作
前言 配置Xshell登录远程服务器Linux的基本指令——man、cp、mv、alias&which、cat&more&less、head&tail、date、cal、find、grep、zip&tar、bc、unameLinux常用热键 一、配置Xshell登录远程服务器 以前我们登录使用指令: ssh 用户名你的公网…...
Mac 使用脚本批量导入 Apple 歌曲
最近呢,买了一个 iPad,虽然家里笔记本台式都有,显示器都是 2个,比较方便看代码(边打游戏边追剧)。 但是在床上拿笔记本始终还是不方便,手机在家看还是小了点,自从有 iPad 之后&…...
全桥PFC电路及MATLAB仿真
一、PFC电路原理概述 PFC全称“Power Factor Correction”(功率因数校正),PFC电路即能对功率因数进行校正,或者说是能提高功率因数的电路。是开关电源中很常见的电路。功率因数是用来描述电力系统中有功功率(实际使用…...
【安当产品应用案例100集】025-确保数据安全传输——基于KMS与HSM的定期分发加密解决方案
引言: 在当今快速发展的数字化时代,企业面临着前所未有的信息安全挑战。尤其是在需要向供应商定期分发敏感数据的情况下,如何保证这些数据在传输过程中的安全性变得至关重要。为此,我们推出了结合安当KMS密钥管理平台与HSM密码机…...
十 缺陷检测解决策略之三:频域+空域
十 缺陷检测解决策略之三:频域空域 read_image (Image, 矩形) * 中间低频,四周高频 fft_image (Image, ImageFFT) * 中间低频,四周高频 fft_generic (Image, ImageFFT1, to_freq, -1, sqrt, dc_center, complex) * 中间高频,四周低频 rft_ge…...
有望第一次走出慢牛
A股已走完30多年历程。 大约每十年,会经历一轮牛熊周期。特点是每一轮周期,大约九成的时间都是熊市主导。就是我们常说的 快牛慢熊。 这一次,会不会重复历史? 历史不会简单重复。已经感受到了盘面的变化。 有人说,股市爆涨爆…...
计算机网络(十二) —— 高级IO
#1024程序员节 | 征文# 目录 一,预备 1.1 重新理解IO 1.2 五种IO模型 1.3 非阻塞IO 二,select 2.1 关于select 2.2 select接口参数解释 2.3 timeval结构体和fd_set类型 2.4 socket就绪条件 2.5 select基本工作流程 2.6 简单select的服务器代…...
电力行业 | 等保测评(网络安全等级保护)工作全解
电力行业为什么要做网络安全等级保护? 电力行业是关系到国家安全和社会稳定的基础性行业,电力行业信息化程度相对较高,是首批国家信息安全等级保护的重点行业。 01 国家法律法规的要求 1994《计算机信息系统安全保护条例》(国务…...
总裁主题CeoMax-Pro主题7.6开心版
激活方式: 1.授权接口源码ceotheme-auth-api.zip搭建一个站点,绑定www.ceotheme.com域名,并配置任意一个域名的 SSL 证书。 2.在 hosts 中添加:127.0.0.1 www.ceotheme.com 3.上传class-wp-http.php到wp-includes目录ÿ…...
深入探讨编程的核心概念、学习路径、实际应用以及对未来的影响
在当今这个数字化时代,编程已成为连接现实与虚拟世界的桥梁,它不仅塑造了我们的生活方式,还推动了科技的飞速发展。从简单的网页制作到复杂的人工智能系统,编程无处不在,其重要性不言而喻。本文旨在深入探讨编程的核心…...
IDEA如何将一个分支的代码合并到另一个分支(当前分支)
前言 我们在使用IDEA开发Java应用时,经常是和git一起使用的。我们对于git常用的操作包括提交,推送,拉取代码等。还有一个重要的功能是合并代码。 那么,我们应该如何合并代码呢? 如何合并代码 首先,我们…...
Python实现基于WebSocket的stomp协议调试助手工具
stomp协议很简单,但是搜遍网络竟没找到一款合适的客户端工具。大多数提供的都是客户端库的使用。可能是太简单了吧!可是即便这样,假如有一可视化的工具,将方便的对stomp协议进行抓包调试。网上类似MQTT的客户端工具有很多…...
基于neo4j的旅游知识图谱维护与问答系统
你还在为毕业设计发愁吗?试试这个基于Neo4j的旅游知识图谱维护与问答系统吧!这套系统不仅功能强大,而且几乎涵盖了你需要的一切,完美助力你的毕业项目! 系统介绍 该系统是专门针对旅游景点信息的知识图谱工具&#x…...
竞赛学习路线推荐(编程基础)
关于学习路线的推荐,总体上,分两步学习,第一步学习编程语言(C、C、java),第二步是学习数据结构和算法 不少初学者会选择C语言或C作为首选,笔者这里也推荐C或C作为入门,需要注意的是&…...
webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建
如果使用 Google 提供的 STUN/TURN 服务器速度较慢,你完全可以自己搭建 STUN 和 TURN 服务器。这有助于提升网络连接速度和稳定性,特别是在需要穿透 NAT 或防火墙的网络环境下。 下面是如何自己搭建 STUN 和 TURN 服务器的具体步骤: 1. 选择…...
利用Pix4D和ArcGIS计算植被盖度
除了水文分析和沟道形态分析之外,在实际工作中还要计算植被盖度! 植被盖度,也称为植被覆盖率或植物覆盖度,是指某一地表面积上植物冠层垂直投影面积占该地表面积的比例。它通常以百分比的形式表示,是描述地表植被状况的…...
用docker Desktop 下载使用thingsboard/tb-gateway
1、因为正常的docker pull thingsboard/tb-gateway 国内不行了,所以需要其它工具来下载 2、在win下用powershell管理员下运行 docker search thingsboard/tb-gateway 可以访问到了 docker pull thingsboard/tb-gateway就可以下载了 3、docker Desktop就可以看到…...
从视频中学习的SeeDo:VLM解释视频并生成规划、代码(含通过RGB视频模仿的人形机器人OKAMI、DexMV)
前言 在此文《UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)》的1.1节开头有提到 机器人收集训练数据一般有多种方式,比如来自人类视频的视觉演示 有的工作致力于从视频数据——例如YouTube视频中进行策略学习 即最常见…...
项目集群部署定时任务重复执行......怎么解决???
项目集群部署在不同服务器,导致定时任务重复执行 1、可以在部署时只让一个服务器上有定时任务模块,不过这样如果这台服务器宕机,就会导致整个定时任务崩溃 2、使用分布式锁,使用redis setNX命令加lua脚本在定时任务执行的时候只…...
使用JUC包的AtomicXxxFieldUpdater实现更新的原子性
写在前面 本文一起来看下使用JUC包的AtomicXxxxFieldUpdater实现更新的原子性。代码位置如下: 当前有针对int,long,ref三种类型的支持。如果你需要其他类型的支持的话,也可以照葫芦画瓢。 1:例子 1.1:普…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...













