【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:普…...
vue3组件通信--props
目录 1.父传子2.子传父 最近在做项目的过程中发现,props父子通信忘的差不多了。下面写个笔记复习一下。 1.父传子 父组件(FatherComponent.vue): <script setup> import ChildComponent from "/components/ChildComp…...
leetcode-75-颜色分类
题解(方案二): 1、初始化变量n0,代表数组nums中0的个数; 2、初始化变量n1,代表数组nums中0和1的个数; 3、遍历数组nums,首先将每个元素赋值为2,然后对该元素进行判断统…...
【嵌入式原理设计】实验三:带报警功能的数字电压表设计
目录 一、实验目的 二、实验环境 三、实验内容 四、实验记录及处理 五、实验小结 六、成果文件提取链接 一、实验目的 熟悉和掌握A/D转换及4位数码管、摇杆、蜂鸣器的联合工作方式 二、实验环境 Win10ESP32实验开发板 三、实验内容 1、用摇杆传感器改变接口电压&…...
C#中的接口的使用
定义接口 public interface IMyInterface {int MyProperty { get; set; }void MyMethod(); } 实现类 internal class MyClass : IMyInterface {public int MyProperty { get; set; }public void MyMethod(){Console.WriteLine("MyMethod is called");} } 目录结构…...
记一次真实项目的性能问题诊断、优化(阿里云redis分片带宽限制问题)过程
前段时间,接到某项目的压测需求。项目所有服务及中间件(redis、kafka)、pg库全部使用的阿里云。 压测工具:jmeter(分布式部署),3组负载机(每组1台主控、10台linux 负载机) 问题现象࿱…...
LeetCode - 4. 寻找两个正序数组的中位数
. - 力扣(LeetCode) 题目 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1: 输入:nums1 …...
算法设计与分析——动态规划
1.动态规划基础 1.1动态规划的基本思想 动态规划建立在最优原则的基础上,在每一步决策上列出可能的局部解,按某些条件舍弃不能得到最优解的局部解,通过逐层筛选减少计算量。每一步都经过筛选,以每一步的最优性来保证全局的最优性…...
【实战篇】GEO是什么?还可以定义新的数据类型吗?
背景 之前,我们学习了 Redis 的 5 大基本数据类型:String、List、Hash、Set 和 Sorted Set,它们可以满足大多数的数据存储需求,但是在面对海量数据统计时,它们的内存开销很大,而且对于一些特殊的场景&…...
SpringBoot最佳实践之 - 项目中统一记录正常和异常日志
1. 前言 此篇博客是本人在实际项目开发工作中的一些总结和感悟。是在特定需求背景下,针对项目中统一记录日志(包括正常和错误日志)需求的实现方式之一,并不是普适的记录日志的解决方案。所以阅读本篇博客的朋友,可以参考此篇博客中记录日志的…...
【Flutter】状态管理:高级状态管理 (Riverpod, BLoC)
当项目变得更加复杂时,简单的状态管理方式(如 setState() 或 Provider)可能不足以有效地处理应用中状态的变化和业务逻辑的管理。在这种情况下,高级状态管理框架,如 Riverpod 和 BLoC,可以提供更强大的工具…...
wordpress 维护插件/企业网站建设服务
1 //1 必须包含头文件2 #include <afxwin.h>3 //2 必须定义一个CWinApp的派生类4 class MyApp:public CWinApp5 {6 public:7 //3 必须重写InitInstance这个虚函数8 virtual BOOL InitInstance()9 { 10 //4 可以创建一个窗口 11 CFrameWnd *p…...
湿地保护宣教网站建设意义/网络宣传怎么做
我是Android和AndroidStudio(AS)的新手,我已经花了好几个小时尝试使用AS“克隆”一个项目。非常感谢上面给出的现有答案让我走上正确的道路。对于任何一个新手,像我一样,以下详细的分步说明应该证明是有用的:>使用Windows资源管…...
新手做视频网站好/百度官网首页登录
只用于发post请求 #pragma mark - post请求 - (void)post {// 1.创建请求对象NSURL *url [NSURL URLWithString:"http://192.168.1.200:8080/Server/login"];ASIFormDataRequest *request [ASIFormDataRequest requestWithURL:url];// 2.添加请求参数(请求体中的参…...
企业管理咨询网站模板/中国互联网协会官网
目录 公共文件 引入 拦截器 请求 验证码实例 后端接口 前端 跨域 公共文件 文件路径和名称:utils/api.js 引入 import axios from "axios"; import { Message } from element-ui; import router from "../router";//在拦截器中引入了ro…...
合肥建站平台/免费推广网站大全集合
Tokyo Cabinet 是一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍。利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式ke…...
诸城做网站/seo站长博客
基于顺序搜索动态分区分配算法,只要把概念弄清楚,那么新进程的处理就很简单了。 最佳适应(best,fit BF)算法 所谓最佳,每次为作业分配内存时,总能把能满足要求,又是最小的空闲分配给作业。避免大材小用。主要做法&am…...