Linux - 2.系统命令
1.帮助命令
1.help
[root@localhost /]# cp --help
- 1.查看命令的信息和参数
- 2.只能显示
shell
内部的命令信息- 3.
help
命令第一部分是概述,第二部分是参数详解,第三部分是说明和注意
# 使用语法 Usage: cp [OPTION]... [-T] SOURCE DESTor: cp [OPTION]... SOURCE... DIRECTORYor: cp [OPTION]... -t DIRECTORY SOURCE... # 实现功能 Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. # 长参和短参是一样的效果 Mandatory arguments to long options are mandatory for short options too.
2.man
[root@localhost /]# man help
- 1.查看命令的信息和参数
- 2.
man
是在程序安装时安装的帮助文档- 3.程序的man帮助文档可能存在多个
# man文档的序号 CP(1) User Commands CP(1) # 名称和内容 NAMEcp - copy files and directories # 概要 SYNOPSIScp [OPTION]... [-T] SOURCE DESTcp [OPTION]... SOURCE... DIRECTORYcp [OPTION]... -t DIRECTORY SOURCE... # 描述 DESCRIPTIONCopy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.Mandatory arguments to long options are mandatory for short options > too.
3.info
[root@localhost /]# info help
info
指令是man
指令的详细内容
2.开关机命令
1.halt
# 关机,实际上是调用shutdown -H命令 [root@localhost /]# halt
2.reboot
# 重启,实际上是调用shutdown -r命令 [root@localhost /]# reboot
3.shutdown
# 用于安全关闭Linux系统 [root@localhost /]# shutdown now
4.poweroff
# 关闭计算器并切断电源,实际上是调用shutdown -P命令 [root@localhost /]# shutdown now
4.init
- 1.
init
是所有进程的祖先,其进程号始终为1- 2.
init
用于切换系统的运行级别,切换是立即完成的- 3.
init 0
命令用于立即将系统运行级别切换为0,即关机- 4.
init 6
命令用于将系统运行级别切换为6,即重新启动。
3.输出命令
1.echo
1.显示普通字符串
echo "It is a test" 双引号可省略 echo It is a test
2.显示转义字符
echo "\"It is a test\"" 双引号可省略 echo \"It is a test\"
3.显示变量
#!/bin/sh # read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量name read name echo "$name It is a test"
[root@www ~]# sh test.sh OK #标准输入 OK It is a test #输出
4.显示换行
echo -e "OK! \n" # -e 开启转义,echo默认换行 echo "It is a test"
OK!It is a test
5.显示不换行
#!/bin/sh echo -e "OK! \c" # -e 开启转义 \c 不换行 echo "It is a test"
OK! It is a test
6.显示结果定向至文件
echo "It is a test" > myfile
7.原样输出字符串,不进行转义或取变量(用单引号)
echo '$name\"'
$name\"
8.显示命令执行结果
echo `date` 注意: 这里使用的是反引号 `, 而不是单引号 '
Thu Jul 24 10:08:46 CST 2014
2.printf
转义字符 说明 \a 警告字符,通常为ASCII的BEL字符 \b 后退 \c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略 \f 换页(formfeed) \n 换行 \r 回车(Carriage return) \t 水平制表符 \v 垂直制表符 \ 一个字面上的反斜杠字符 \ddd 表示1到3位数八进制值的字符。仅在格式字符串中有效 \0ddd 表示1到3位的八进制值字符 printf format-string [arguments...]
format-string
: 为格式控制字符串arguments
: 为参数列表
1.格式化输出
#!/bin/bashprintf "%-10s %-8s %-4s\n" 姓名 性别 体重kg printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
姓名 性别 体重kg 郭靖 男 66.12 杨过 男 48.65 郭芙 女 47.99
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com# format-string为双引号 printf "%d %s\n" 1 "abc"# 单引号与双引号效果一样 printf '%d %s\n' 1 "abc"# 没有引号也可以输出 printf %s abcdef# 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用 printf %s abc defprintf "%s\n" abc defprintf "%s %s %s\n" a b c d e f g h i j# 如果没有 arguments,那么 %s 用空字符串代替,%d 用 0 代替 printf "%s and %d \n"
1 abc 1 abc abcdefabcdefabc def a b c d e f g h i j and 0
$ printf "a string, no processing:<%s>\n" "A\nB" a string, no processing:<A\nB>$ printf "a string, no processing:<%b>\n" "A\nB" a string, no processing:<A B>$ printf "www.runoob.com \a" www.runoob.com $ #不换行
- 1.
%s %c %d %f
都是格式替代符- 2.
%s
输出一个字符串- 3.
%d
整型输出- 4.
%c
输出一个字符- 5.
%f
输出实数,以小数形式输出- 6.
%-10s
指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来- 7.
%-4.2f
指格式化为小数,其中 .2 指保留2位小数
4.网络命令
1.ping
# 1.用于测试主机之间网络连接的连通性 # 2.通过发送 ICMP(Internet Control Message Protocol)回显请求消息到目标主机,并等待回显响应来判断网络是否可达 ping [选项] 目标主机(IP地址/域名) # 3.选项 # -c <count>:指定发送回显请求的次数 # -i <interval>:指定发送回显请求的时间间隔(单位为秒),默认值为 1 秒 # -t <ttl>:设置 IP 数据包的生存时间(TTL,Time To Live),TTL 是一个 8 位字段,用于限制数据包在网络中的跳数,每经过一个路由器,TTL 减 1,当 TTL 为 0 时,数据包被丢弃 # -s <size>:指定发送的数据包大小(单位为字节),默认值通常为 56 字节(加上 8 字节的 ICMP 头部 和 20 字节的 IP 头部,总共 84 字节) # -f:快速模式,以尽可能快的速度发送回显请求,直到中断,通常用于测试网络的带宽和负载能力 # -w <timeout>:Windows 系统指定超时时间(单位为毫秒) [root@localhost /]# ping -c 4 -i 2 -t 52 -w 2000 -s 56 www.baidu.com PING www.a.shifen.com (180.101.51.73) 56(84) bytes of data. 64 bytes from 180.101.51.73 (180.101.51.73): icmp_seq=1 ttl=52 time=10.3 ms 64 bytes from 180.101.51.73 (180.101.51.73): icmp_seq=2 ttl=52 time=9.78 ms 64 bytes from 180.101.51.73 (180.101.51.73): icmp_seq=3 ttl=52 time=8.97 ms 64 bytes from 180.101.51.73 (180.101.51.73): icmp_seq=4 ttl=52 time=11.1 ms--- www.a.shifen.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 6030ms rtt min/avg/max/mdev = 8.977/10.058/11.147/0.789 ms # PING www.a.shifen.com:目标域名被解析为 www.a.shifen.com # 180.101.51.73:目标域名的实际 IP 地址 # 56(84) bytes of data:发送的数据包大小为 56 字节(不包括 ICMP 头部),总大小为 84 字节(包括 8 字节的 ICMP 头部和 20 字节的 IP 头部) # 64 bytes:收到的回显响应数据包大小为 64 字节 # from 180.101.51.73:响应来自 IP 地址 180.101.51.73 # icmp_seq=1:ICMP 序列号为 1,表示这是第一个发送的请求的响应 # ttl=52:响应数据包的生存时间(TTL)为 52 # time=10.3 ms:往返时间(RTT)为 10.3 毫秒 # 4 packets transmitted:发送了 4 个 ICMP 回显请求。 # 4 received:收到了 4 个 ICMP 回显响应。 # 0% packet loss:没有数据包丢失。 # time 6030ms:整个操作的总时间为 6030 毫秒(6.03 秒)。 # min:最小往返时间(RTT)为 8.977 毫秒 # avg:平均往返时间为 10.058 毫秒 # max:最大往返时间为 11.147 毫秒 # mdev:平均偏差(Mean Deviation)为 0.789 毫秒,表示往返时间的波动范围
2.ip
# 显示ip信息,其中address可以任意简写 例:a,ad,add,addr,addre,addres [root@localhost /]# ip address
4.ifconfig
# centos 7之前版本查看ip的命令,已经遗弃 [root@localhost /]# ifconfig -bash: ifconfig: 未找到命令
2.dhclient
# 动态分配一个ip,临时生效 [root@localhost /]# dhclient
5.netstat
netstat [选项]选项: -a或–all :显示所有连线中的Socket -A<网络类型>或–<网络类型> :列出该网络类型连线中的相关地址 -c或–continuous :持续列出网络状态 -C或–cache :显示路由器配置的快取信息 -e或–extend :显示网络其他相关信息 -F或–fib :显示FIB -g或–groups :显示多重广播功能群组组员名单 -h或–help :在线帮助 -i或–interfaces :显示网络界面信息表单 -l或–listening :显示监控中的服务器的Socket -M或–masquerade :显示伪装的网络连线 -n或–numeric :直接使用ip地址,而不通过域名服务器 -N或–netlink或–symbolic :显示网络硬件外围设备的符号连接名称 -o或–timers :显示计时器 -p或–programs :显示正在使用Socket的程序识别码和程序名称 -r或–route :显示Routing Table -s或–statistice :显示网络工作信息统计表 -t或–tcp :显示TCP传输协议的连线状况 -u或–udp :显示UDP传输协议的连线状况 -v或–verbose :显示指令执行过程 -V或–version :显示版本信息 -w或–raw :显示RAW传输协议的连线状况 -x或–unix :此参数的效果和指定"-A unix"参数相同 –ip或–inet :此参数的效果和指定"-A inet"参数相同# 列出所有端口 netstat -a # 列出所有TCP端口 netstat -at # 列出所有UDP端口 netstat -au # 列出所有处于监听状态的 Sockets netstat -l # 列出所有监听tcp端口 netstat -lt # 列出所有监听udp端口 netstat -lu # 列出所有监听UNIX端口 netstat -lx # 输出中显示 PID 和进程名称 netstat -pt # 直接显示ip地址和端口号 netstat -an # 持续输出netstat信息,每隔一秒输出网络信息 netstat -c # 显示核心路由信息 netstat -r # 找出程序运行的端口 netstat -tunlp | grep ssh # 找出运行在指定端口的进程 netstat -an | grep ":80" 或 netstat -tunlp | grep ":3306" # 通过端口找进程ID netstat -tunlp | grep 3306 | awk '{print $7}' | cut -d/ -f1 # 显示网络接口列表 netstat -i # 统计TCP各种状态列 netstat -n | awk '/^tcp/{++S[$NF]}END{for(i in S) print i,S[i]}'
- 1.显示正在侦听的所有
TCP
或UDP
端口,包括使用端口和套接字状态的服务,一般用于检验本机各端口的网络连接情况- 2.
TCP
连接状态详解
- 1.
LISTEN
: 侦听来自远方的TCP端口的连接请求- 2.
SYN-SENT
: 再发送连接请求后等待匹配的连接请求- 3.
SYN-RECEIVED
:再收到和发送一个连接请求后等待对方对连接请求的确认- 4.
ESTABLISHED
: 代表一个打开的连接- 5.
FIN-WAIT-1
: 等待远程TCP连接中断请求,或先前的连接中断请求的确认- 6.
FIN-WAIT-2
: 从远程TCP等待连接中断请求- 7.
CLOSE-WAIT
: 等待从本地用户发来的连接中断请求- 8.
CLOSING
: 等待远程TCP对连接中断的确认- 9.
LAST-ACK
: 等待原来的发向远程TCP的连接中断请求的确认- 10.
TIME-WAIT
: 等待足够的时间以确保远程TCP接收到连接中断请求的确认- 11.
CLOSED
: 没有任何连接状态
6.nc
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]-g<网关> 设置路由器跃程通信网关,最多可设置8个 -G<指向器数目> 设置来源路由指向器,其数值为4的倍数 -h 在线帮助 -i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口 -l 使用监听模式,管控传入的资料 -n 直接使用IP地址,而不通过域名服务器 -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存 -p<通信端口> 设置本地主机使用的通信端口 -r 乱数指定本地与远端主机的通信端口 -s<来源位址> 设置本地主机送出数据包的IP地址 -u 使用UDP传输协议 -v 显示指令执行过程 -w<超时秒数> 设置等待连线的时间 -z 使用0输入/输出模式,只在扫描通信端口时使用
监听端口号并向指定端口发送字符串消息数据 # 下载netcat,用于监听端口 yum install nc # 下载net-tools,用于查看端口号使用情况 yum install -y net-tools # 下载telnet,用于向端口号发送消息 yum install -y telnet # 监听端口 nc -lk 9999 # 使用netstat -anpt 查看监听状态 netstat -anpt | grep 9999 # 发送数据 telnet ip 9999 # 右边nc自动接收
- 用于设置路由器,监听端口
7.ss
ss [选项]选项: -a, --all 列出所有的socket -h, --help 帮助信息 -V, --version 展示版本信息 -n, --numeric 不解析服务名称 -r, --resolve 解析主机名 -l, --listening 显示监听的socket,列出所有打开的网络连接端口 -o, --options 显示定时器信息 -e, --extended 显示socket的详细信息 -m, --memory 显示socket内存使用情况 -p, --processes 显示使用socket的进程 -i, --info 显示内部TCP信息 -s, --summary 显示socket使用情况摘要-4, --ipv4 只显示IP版本4的socket -6, --ipv6 只显示IP版本6的socket -0, --packet 显示包socket -t, --tcp 只显示TCP类型的socket -u, --udp 只显示UDP类型的socket -d, --dccp 只显示DCCP类型的socket -w, --raw 只显示RAW类型的socket -x, --unix 只显示Unix域socket -f, --family=FAMILY 显示FAMILY类型的socket-A, --query=QUERY, --socket=QUERYQUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]-D, --diag=FILE 将TCP套接字的原始信息转储到FILE -F, --filter=FILE 从文件中读取过滤器信息FILTER := [ state TCP-STATE ] [ EXPRESSION ]例: ss -nlt
- 1.
ss(socket statistics)
:获取socket
统计信息,内容类似netstat
,但更详细更快
8.curl
5.日期命令
1.date
# 显示当前系统时间 [root@localhost ~]# date 2022年 10月 21日 星期五 19:27:26 CST # 显示年月日时分秒 [root@localhost ~]# date '+%F %T' 2022-10-21 19:29:43
6.清屏命令
1.clear
# 本质上只是让终端显示页向后翻了一页,向上滚动屏幕还可以看到之前的操作信息 [root@localhost /]# clear # 快捷操作 ctrl+l
2.reset
# 完全刷新终端屏幕,之前的终端输入操作信息将都会被清空 [root@localhost /]# clear
7.终止命令
- 1.
Ctrl+c
和Ctrl+z
都是中断命令- 2.
ctrl+c
是强制中断程序的执行(终止)- 3.
ctrl+z
是将任务中止(暂停),- 4.可以使用
fg/bg
操作继续前台或后台的任务- 5.
fg
命令重新启动前台被中断的任务- 6.
bg
命令把被中断的任务放在后台执行- 7.
ctrl+d
不是发送信号,而是表示一个特殊的二进制值,表示EOF
- 8.
shell
中,ctrl+d
表示退出当前shell.
8.查看历史命令
1.上下箭头
- 通过上下箭头即可查看历史命令
2.history
- 1.查看历史命令
- 2.历史命令一般存放在
~/.bash_history
中- 3.只有当正常登陆退出之后系统才会将缓存中的命令写入文件
- 4.历史命令最多可以保存1000条,可以在
/etc/profile
中进行修改,修改后执行source /etc/profile
使环境变量生效- 5.使用“!n”重复执行第
n
条历史命令- 6.使用“!!”重复执行上一条命令
- 7.使用“!字串”重复执行最后一条以该字串开头的命令
9.自动补全命令
- 通过
Tab
键可以自动补全已存在内容
10.目录命令
1.pwd(print work directory)
# 查看当前目录 [root@localhost home]# pwd /home # -P :显示出确实的路径,而非使用链接 (link) 路径 # 加上 -P 的选项后,会不显示链接,而显示正确的完整路径
2.cd(change directory)
# 切换目录 [root@localhost home]# cd /opt
3.ls(list files)
# 显示当前目录下的组成 [root@localhost home]# ls test2.txt test.txt # 显示目录本身(.表示当前目录) [root@localhost ~]# ls -d . # 显示以**开头的所有文件(.表示隐藏文件) [root@localhost ~]# ls -d .* . .bash_history .bash_profile .cshrc .oracle_jre_usage .tcshrc .. .bash_logout .bashrc .mysql_history .rediscli_history .viminfo # 显示隐藏文件 [root@localhost home]# ls -a . .. test2.txt test.txt # 显示文件的详细信息 [root@localhost home]# ls -l 总用量 8 -rw-r--r--. 1 root root 15 10月 22 12:35 test2.txt -rw-r--r--. 1 root root 836 10月 22 12:59 test.txt # 组合使用 [root@localhost home]# ls -al 总用量 8 drwxr-xr-x. 2 root root 39 10月 22 12:59 . dr-xr-xr-x. 17 root root 224 10月 21 18:13 .. -rw-r--r--. 1 root root 15 10月 22 12:35 test2.txt -rw-r--r--. 1 root root 836 10月 22 12:59 test.txt # 显示指定目录中的文件 [root@localhost home]# ls /home test2.txt test.txt
4.mkdir(make directory)
- 创建目录
[root@localhost home]# mkdir test [root@localhost home]# ls test test2.txt test.txt # 级联创建目录 [root@localhost home]# mkdir -p test/spring/springboot # 创建目录并设置权限 [root@localhost home]mkdir -m 711 test2
5.rmdir(remove directory)
- 1.删除一个空的目录(
-p
:从该目录起,一次删除多级空目录)- 2.
rmdir
仅能删除空的目录,你可以使用rm
命令来删除非空目录
6.tree
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]-a 显示所有文件和目录。 -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。 -C 在文件和目录清单加上色彩,便于区分各种类型。 -d 显示目录名称而非内容。 -D 列出文件或目录的更改时间。 -f 在每个文件或目录之前,显示完整的相对路径名称。 -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。 -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。 -i 不以阶梯状列出文件或目录名称。 -L level 限制目录显示层级。 -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。 -n 不在文件和目录清单加上色彩。 -N 直接列出文件和目录名称,包括控制字符。 -p 列出权限标示。 -P<范本样式> 只显示符合范本样式的文件或目录名称。 -q 用"?"号取代控制字符,列出文件和目录名称。 -s 列出文件或目录大小。 -t 用文件和目录的更改时间排序。 -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。 -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外
- 以树状图列出目录的内容
11.文件命令
1.touch
# 创建一个空文件 [root@localhost home]# touch frist.txt [root@localhost home]# ls frist.txt test test2.txt test.txt
2.rm
# 1.删除文件 [root@localhost home]# rm frist.txt rm:是否删除普通空文件 "frist.txt"?y [root@localhost home]# ls test test2.txt test.txt # 2.删除目录,递归删除 [root@localhost home]# rm -r test rm:是否进入目录"test"? y rm:是否进入目录"test/spring"? y rm:是否删除目录 "test/spring/springboot"?y rm:是否删除目录 "test/spring"?y rm:是否删除目录 "test"?y # 3.强制删除文件 [root@localhost home]# rm -f test.txt [root@localhost home]# ls test2.txt # 4.强制递归删除目录 [root@localhost home]# rm -rf test # -i 互动模式,删除前会询问使用者
3.cp
# 1.复制文件 [root@localhost home]# cp test2.txt test1.txt [root@localhost home]# ls test1.txt test2.txt [root@localhost home]# cat test1.txt test springmvc # 2.复制到指定目录下 [root@localhost home]# mkdir test [root@localhost home]# ls test test1.txt test2.txt [root@localhost home]# cp test1.txt test [root@localhost home]# ls test test1.txt test2.txt [root@localhost home]# cd test [root@localhost test]# ls test1.txt # 3.添加-r参数复制文件夹-,递归复制目录 [root@localhost home]# cp -r a b // a,b是目录,a中的所有内容(包含a)复制到b中 [root@localhost home]# cp -r a/* b // a中的所有内容(不包含a)复制到b中 # 4.-i:若目标(destination)已经存在时,覆盖时会先询问 # 5.-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)
4.mv
[root@localhost home]# mv test2.txt test2 [root@localhost home]# ls test test1.txt test2 [root@localhost home]
相关文章:
Linux - 2.系统命令
1.帮助命令 1.help [root@localhost /]# cp --help1.查看命令的信息和参数2.只能显示shell内部的命令信息3.help命令第一部分是概述,第二部分是参数详解,第三部分是说明和注意 # 使用语法 Usage: cp [OPTION]... [-T] SOURCE DESTor: cp [OPTION]... SOURCE... DIRECTORYor:…...
CSP 2024 提高级第一轮(CSP-S 2024)单选题解析
单选题解析 第 1 题 在 Linux 系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?(A) A. pwd B. cd C. ls D. echo 解析:Linux 系统中,pwd命令可以显示当前工作目录的路径。pwd&#x…...
JavaScript运算符
在JavaScript开发中,运算符是编程的基础工具。它们用于执行各种操作,从简单的数学计算到复杂的逻辑判断。本文将深入探讨JavaScript中的各种运算符,包括算术运算符、比较运算符、布尔运算符、位运算符以及其他一些特殊运算符。 一、算术运算…...
无线信道的噪声与干扰
目录 1. 无线信道(wireless channel)与电磁波 2.1 电磁波的传输(无线信道传输) 2.2 视线(line of sight)传播与天线高度 2. 信道的数学模型 2.1 调制信道模型 2.1.1 加性噪声/加性干扰 2.1.2 乘性噪声/乘性干扰 2.1.3 随参信道/恒参信道 2.2 编码信道模型 2.3 小结 …...
计算机视觉与深度学习 | Python实现EMD-CNN-LSTM时间序列预测(完整源码、数据、公式)
EMD-CNN-LSTM 1. 环境准备2. 数据生成(示例数据)3. EMD分解4. 数据预处理5. CNN-LSTM模型定义6. 模型训练7. 预测与重构8. 性能评估核心公式说明1. 经验模态分解(EMD)2. CNN-LSTM混合模型参数调优建议扩展方向典型输出示例以下是使用Python实现EMD-CNN-LSTM时间序列预测的完…...
基于Yolov8+PyQT的老人摔倒识别系统源码
概述 随着人工智能技术的普及,计算机视觉在安防领域的应用日益广泛。幽络源本次分享的基于Yolov8PyQT的老人摔倒识别系统,正是针对独居老人安全监护的实用解决方案。该系统通过深度学习算法实时检测人体姿态,精准识别站立、摔倒中等…...
【网络入侵检测】基于Suricata源码分析运行模式(Runmode)
【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全,欢迎关注与评论。 1. 概要 👋 在 Suricata 中抽象出线程、线程模块和队列三个概念:线程类似进程,可多线程并行执行操作;监听、解码、检…...
深入解析:java.sql.SQLException: No operations allowed after statement closed 报错
在 Java 应用程序开发过程中,尤其是涉及数据库交互时,开发者常常会遇到各种各样的异常。其中,java.sql.SQLException: No operations allowed after statement closed是一个较为常见且容易令人困惑的错误。本文将深入剖析这一报错,…...
ARM-Linux 完全入门
1.准备部分 1.1 虚拟机安装 准备VMware软件、ubuntu系统镜像安装过程 VMware安装 破解(自己百度破解码,多试几个网址,会有能用的)Ubuntu安装 配置联网 桥接 虚拟机Ubuntu系统必须能连接到外网,不然不能更新软件安装…...
前端二进制数据指南:从 ArrayBuffer 到高级流处理
前端开发中,二进制数据是处理文件、图像、音视频、网络通信等场景的基础。以下是核心概念和用途的通俗解释: 前端二进制数据介绍 1. 什么是前端二进制数据? 指计算机原始的 0 和 1 格式的数据(比如一张图片的底层代码ÿ…...
深入理解构造函数,析构函数
目录 1.引言 2.构造函数 1.概念 2.特性 3.析构函数 1.概念 2.特性 1.引言 如果一个类中什么都没有,叫作空类. class A {}; 那么我们这个类中真的是什么都没有吗?其实不是,如果我们类当中上面都不写.编译器会生成6个默认的成员函数。 默认成员函数:用户没有显…...
数值分析知识重构
数值分析知识重构 一 Question 请构造一下数值分析中的误差概念以及每一个具体数值方法的误差是如何估计的? 二 Question 已知 n 1 n1 n1个数据点 ( x i , y i ) , i 0 , 1 , ⋯ , n (x_i,y_i),i0,1,\cdots,n (xi,yi),i0,1,⋯,n,请使用多种方法建立数据之间…...
全端同步!ZKmall开源商城如何用B2B2C模板让消费者跨设备购物体验无缝衔接?
在数字化浪潮席卷下,消费者的购物行为不再局限于单一设备。早晨用手机小程序浏览商品,中午在 PC 端对比参数,晚上通过平板下单,跨设备购物已成常态。然而,设备间数据不同步、操作体验割裂等问题,严重影响购…...
Redis Sentinel如何实现高可用?
Redis Sentinel 通过以下核心机制实现高可用: 1. 监控(Monitoring) Sentinel 集群会持续监控主节点(Master)和从节点(Slave)的状态: 定期发送 PING 命令检测节点是否存活…...
环形缓冲区 ring buffer 概述
环形缓冲区 ring buffer 概述 1. 简介 环形缓冲区(ring buffer),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。也称作环形缓冲区(circular buffer),环形队列&…...
Spring源码之解决循环依赖 三级缓存
目录 三级缓存核心原理 循环依赖的解决过程 1. Bean A创建过程中提前曝光工厂 2. Bean B创建时发现依赖A,从缓存获取 3. Bean A继续完成初始化 三级缓存的作用总结 二级缓存为何不够解决缓存依赖? 三级缓存如何解决? 为什么不直接在…...
山东大学计算机图形学期末复习9——CG12上
CG12上 几何管线末端:顶点已组装成基本图元(Primitives,如点、线、三角形)。 主要任务: 裁剪:视锥体是一个三维空间区域(由近裁剪面、远裁剪面和侧面组成),超出该区域的图…...
关于软件测试开发的一些有趣的知识
文章目录 一、什么是测试?二、为什么要软件测试软件测试三、测试的岗位有哪些四 、软件测试和开发的区别五、走测试岗位为什么还要学开发。4、优秀的测试人员具备的素质我为什么走测试岗位 一、什么是测试? 其实这个问题说简单也不简单,说难…...
在Solana上使用 Scaled UI Amount 扩展
本指南提供 Solana Web3.js (Legacy v 1.x) 和 Solana Kit (v 2.x) 版本。选择适当的选项卡以查看你首选库的代码片段和说明: Solana Web3.js (Legacy)Solana Kit 概述 Solana Token-2022 程序 引入了强大的扩展,增强了代币功能,使其超越了…...
线性表之数组与栈详解
线性表之数组与栈详解 前言一、数组(Array)1.1 数组的基本概念1.2 数组的实现与操作1.3 数组的应用场景1.4 数组的优缺点 二、栈(Stack)2.1 栈的基本概念2.2 栈的实现方式2.3 栈的应用场景 2.4 栈的优缺点 三、数组与栈的对比总结…...
车载以太网驱动智能化:域控架构设计与开发实践
title: 车载以太网驱动专用车智能化:域控架构设计与开发实践 date: 2023-12-01 categories: 新能源汽车 tags: [车载以太网, 电子电气架构, 域控架构, 专用车智能化, SOME/IP, AUTOSAR] 引言:专用车智能化转型的挑战与机遇 专用车作为城市建设与工业运输…...
【Redis】redis用作缓存和分布式锁
文章目录 1. 缓存1.1 Redis作为缓存1.2 缓存更新、淘汰策略1.3 缓存预热、缓存穿透、缓存雪崩和缓存击穿1.3.1 缓存预热(preheating)1.3.2 缓存穿透(penetration)1.3.3 缓存雪崩(avalanche)1.3.4 缓存击穿&…...
深度学习中独热编码(One-Hot Encoding)
文章目录 独热编码独热编码的作用独热编码的优点独热编码的缺点场景选择独热编码(PyTorch实现)替代方案 实际使用分析:对对象类型使用独热编码为什么使用独热编码是合适的?📌 场景说明:📌 为什么…...
如何根据竞价数据判断竞价强度,是否抢筹等
竞价强度判断方法 价格变化幅度 观察开盘价与前一交易日收盘价的差距 :如果一只股票在开盘集合竞价阶段价格大幅高于前一交易日收盘价,说明市场对该股票的预期较为积极,可能有资金在主动抬高价格,这是一种较强的竞价强度表现。例如…...
Codex与LangChain结合的智能代理架构:重塑软件开发的未来
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言:当代码生成遇见智能决策 想象以下场景: 凌晨三点:你需要紧急修复一个遗留系统的内存泄漏漏洞,但代码注释缺失且逻辑复杂; 产品经理需求变更:要求在24小时内将现有…...
2025年PMP 学习十八 第11章 项目风险管理 (11.5~11.7)
2025年PMP 学习十八 第11章 项目风险管理 (11.5~11.7) 第11章 项目风险管理 序号过程过程组1规划风险管理规划2识别风险规划3实施定性风险分析规划4实施定量风险分析规划5规划风险应对执行6实施风险应对执行7监控风险监控 文章目录 2025年PMP 学习十八…...
2025年PMP 学习十七 第11章 项目风险管理 (11.1~11.4)
2025年PMP 学习十七 第11章 项目风险管理 (11.1~11.4) 第11章 项目风险管理 序号过程过程组1规划风险管理规划2识别风险规划3实施定性风险分析规划4实施定量风险分析规划5规划风险应对执行6实施风险应对执行7监控风险监控 文章目录 2025年PMP 学习十七…...
impala
Impala,它是 Cloudera 开发的开源 实时 SQL 查询引擎,专为 Hadoop 设计。与 Presto 类似,Impala 用于交互式分析,但架构和设计理念有所不同。以下是 Impala 的核心特点和工作原理: 一、Impala 核心架构 1. 组件组成 …...
湖北理元理律师事务所:债务优化中的双维支持实践解析
在债务压力与生活质量失衡的社会议题下,法律服务机构的功能边界正在从单一的法律咨询向复合型支持延伸。湖北理元理律师事务所通过“法律心理”双维服务模式,探索债务优化与生活保障的平衡路径,其方法论或为行业提供实践参考。 法律框架&…...
Redis设计与实现——Redis命令参考与高级特性
Redis命令参考 数据类型相关命令 SET:设置键值,支持过期时间、不存在/存在条件。GET:获取键值,若键不存在返回 nil。INCR/DECR:将键的整数值增1/减1,键不存在时初始化为0。MSET/MGET:批量设置…...
TCP/UDP协议原理和区别 笔记
从简单到难吧 区别就是TCP一般用于安全稳定的需求,UDP一般用于不那么需要完全数据的需求,比如说直播,视频等。 再然后就是TPC性能慢于UDP。 再然后我们看TCP的原理(三次握手,数据传输,四次挥手࿰…...
JavaScript基础-对象的相关概念
在JavaScript中,对象是核心的数据结构之一,几乎所有的高级功能都围绕着对象展开。理解对象的基本概念、创建方法以及操作方式对于掌握JavaScript至关重要。本文将详细介绍JavaScript中对象的相关概念,包括对象的定义、属性的操作、原型链和面…...
如何通过交流沟通实现闭环思考模式不断实现自身强效赋能-250517
感谢一直以来和我交流沟通的朋友们。 闭环思考 文字部分(25-05-04)这一天是青年节,在这一天与青年朋友交流这个是事先规划好的: “可以猜一猜,博士会被撤销吗?导师会被处理吗?千万不要回复&…...
震荡指标工具
一、引言 - 可视化数字烛台工具是对传统蜡烛图的补充,旨在帮助交易者更有效地进入和退出交易,提高交易利润。 - 通过分析蜡烛图,结合烛台震荡指标,提出了一个辅助视觉工具来辅助交易决策。 二、烛台指标与交易策略 -图表通过平均开…...
【自然语言处理与大模型】大模型(LLM)基础知识④
(1)微调主要用来干什么? 微调目前最主要用在定制模型的自我认知和改变模型对话风格。模型能力的适配与强化只是辅助。 定制模型的自我认知:通过微调可以调整模型对自我身份、角色功能的重新认知,使其回答更加符合自定义…...
返回码的方案对比和思考
前言 一般我们定义 Restful 接口返回码,常见的就是 const 定义 code , StatusToText() 来实现定义 msg, 在封装1 ~ 2个返回方法(success、error)就可以实现,只是突然想到这样设计是违反开闭原则的…...
Flink 的任务槽和槽共享
在 Apache Flink 中,任务槽(Task Slot) 和 槽共享组(Slot Sharing Group) 是资源管理和任务调度的关键机制。它们决定了 Flink 如何在集群中分配资源并执行任务。 一、任务槽(Task Slot) 1. 定…...
实验七 基于Python的数字图像水印算法
一、实验目的 掌握图像水印的应用; 掌握我国版权保护的发展现状; 掌握常见的数字图像水印算法。 二、实验内容 学习内容补充: 数字水印的鲁棒性评价主要采用含水印图像提取出的水印与原始水印的相似程度,使用归一化相关(NC,Nor…...
C语言:在 Win 10 上,gcc 如何编译 gtk 应用程序
在 Windows 10 上使用 g(或 gcc)编译基于 GTK 的 C 语言程序是完全可行的,且相比 Tcc 更为推荐,因为 g(GNU 编译器套件)对 GTK 的支持更加完善,配置也更简单。以下是详细步骤和注意事项…...
Vue.js---watch 的实现原理
4.7 watch 的实现原理 watch本质上就是使用了effect以及options.scheduler 定义watch函数: // watch函数:传入参数source以及回调函数function watch(source , cb) {effect(() > source.foo,{scheduler(){// 回调函数cb()}})}watch接收两个参数分别是source和c…...
Linux_ELF文件
目录 前言: 一、ELF文件的类型 二、ELF文件的组成格式 1. ELF头部(ELF Header) 2. 节头表(Section Header Table) 3. 程序头表(Program Header Table) 4. 节(Sections)与段(Segments) 三、ELF文件从形成到加载轮廓 1、ELF可执行文件形成过程 2、 可执行文…...
磁盘I/O子系统
一、数据写入磁盘流程 当执行向磁盘写入数据操作的时候,会发生如下的一系列基本操作。假设文件数据存在于磁盘扇区上,并且已经被读入到页缓存中。 进程使用write()系统调用写入文件。内核更新映射到文件的page cache。内核线程pdflush负责把页缓存刷入…...
【2025 技术指南】如何创建和配置国际版 Apple ID
想要体验更丰富的应用生态、使用国际版专属服务,或访问更多开发者工具?一个国际版 Apple ID 能帮你实现这些需求。本教程将详细介绍如何注册国际版 Apple ID 并正确配置支付信息,全程操作简单,适合开发者和技术爱好者参考。 一、准…...
C++(20): 文件输入输出库 —— <fstream>
目录 一、 的核心功能 二、核心类及功能 三、核心操作示例 1. 文本文件写入(ofstream) 2. 文本文件读取(ifstream) 3. 二进制文件操作(fstream) 四、文件打开模式 五、文件指针操作 六、错误处理技巧…...
05、基础入门-SpringBoot-HelloWorld
05、基础入门-SpringBoot-HelloWorld ## 一、Spring Boot 简介 **Spring Boot** 是一个用于简化 **Spring** 应用初始搭建和开发的框架,旨在让开发者快速启动项目并减少配置文件。 ### 主要特点 - **简化配置**:采用“约定优于配置”的原则,减…...
深入理解指针(6)
目录 1 sizeof和strlen的对⽐ 1.1 sizeof 编辑1.2strlen 1.3 sizeof 和 strlen的对⽐ 2 数组和指针笔试题解析 2.1 ⼀维数组 编辑 2.2 字符数组 3 指针运算笔试题解析 3.1 题⽬1: 编辑3.2 题目2 3.3 题目3 3.4 题目4 3.5 题目5 3.6 题目6 3.7…...
力扣HOT100之二叉树:108. 将有序数组转换为二叉搜索树
这道题之前做过,思路又给忘了,这道题用递归做是最简单的。 由于得到的数组是有序的,我们只需要取出中间位置的元素medium作为根节点,然后medium左边的剩余元素组成根节点的左子树,medium右边的剩余元素组成根节点的右子…...
手撕I2C和SPI协议实现
手撕I2C和SPI协议实现 目录 I2C协议原理I2C位操作实现I2C驱动代码编写SPI协议原理SPI位操作实现SPI驱动代码编写 I2C协议原理 I2C(Inter-Integrated Circuit)是一种串行通信总线,使用两根线:SCL(时钟线)…...
452. Minimum Number of Arrows to Burst Balloons
题目描述 这道题用leetcode官方的解答反而搞复杂了。本题其实就是求重叠区间的交集。先按照区间左端点从小到大排序。然后拿出第一个区间作为【当前区间交集】的初始值。遍历后面的区间看那个区间和【当前交集】是否有重叠。如果有重叠则将【当前交集】和【当前区间】求交集并更…...
React 中,闭包陷阱
文章目录 前言1. 经典闭包陷阱示例过期状态问题 2. 解决方案2.1 正确声明依赖数组2.2 使用 useRef 捕获最新值**2.3 使用函数式更新(针对状态更新)****2.4 使用 useCallback 冻结闭包** **3. 异步操作中的闭包陷阱****事件监听示例** **4. 自定义 Hooks …...