liunx的基础命令整理

基础命令

cd : 切换目录
cd :切换路径
cd ~ 切换到当前用户的家目录
cd . 切换到当前路径
cd .. 切换到上一级路径
cd ../.. 切换到上上级路径(其中:在linux中路径分隔符为斜杠/)
cd - 切换到上一次的路径


ls : 列出目录内容

ls:列出目录内容
ls -l:列出详细信息
ls -a:列出全部文件信息,包括隐藏文件
ls -d:列出目录详细信息
ls -h:列出文件信息并显示文件大小单位


alias/unalias  : 命令别名/取消命令别名

alias 别名='命令' :给命令起别名
​
unalias 别名 :取消命令别名
​
unalias -a 别名 :取消所有别名 


mv : 移动、重命名文件

mv 旧文件名 新文件名 ====>修改文件名
如:mv file1 filea将当前目录的文件file1改名为filea
​
mv 旧目录名 新目录名 ====>修改目录名
如:mv dir1 dira将当前目录下的目录dir1改为dira
​
mv 文件名  目录名  ====>移动路径
如:mv filea dira将当前目录下filea移动到dira子目录
如:mv filea ~ 将当前目录下filea移动家目录  
如:mv ~/filea ..将家目录下的fila移动到上一个路径


cp :复制文件(目录)

==复制 cp -r 目录 -v 详细 -f 强制 -n 静默
​
1) cp 源文件名 目标文件名
举例:cp File1 file2将当前目录下的文件File1拷贝成file22) cp 源文件名 目标目录名
举例:
cp file2 dira/将当前目录下的文件file2拷贝到dira子目录
​
3) cp 源目录名 目标目录名
举例:
cp -r dira dirb复制dira目录下的所有内容到dirb。其中,-r参数是递归复制
cp -i file2 dira如果dira目录下面有同名的file2,加入-i参数就会要求你确认是否覆盖同名的文件


mkdir : 创建空目录

mkdir dir1
创建两个目录:
mkdir /home/dir2 /home/dir3
mkdir /home/{dir4,dir5} 
mkdir -v /home/{dir6,dir7} #-v :verbose 冗长的。显示创建时的详细信息
mkdir -p /home/dir8/111/222 #-p 创建连级目录,一级一级的创建


rmdir : 删除空目录

​
==删除 rm -r 递归删除目录 -f force强制 -v 详细过程  *通配符
​
rm:删除目录及内容
rm -rf :删除所有 
​


touch : 创建空文件

[root@linux-server ~]# touch file1.txt //无则创建,如果存在修改时间
[root@linux-server ~]# touch /home/file10.txt
[root@linux-server ~]# touch /home/{zhuzhu,gougou} //{}集合
[root@linux-server ~]# touch /home/file{1..20} //批量创建


echo : 写入

echo 加内容 > 加文件名 #覆盖:把之前的内容替换掉
​
echo 123 > a.txt
​
echo 加内容 >> 加文件名  #追加:保留之前的内容,在后面添加新内容
​
echo 345345 >> a.txt
​
当使用echo 123 >> a.txt 这个命令的时候在文件不存在的时候会创建该文件并将内容追加到改文件中


stat : 详细查看文件访问时间等信息

root@localhost ~] #stat file文件: "file"
大小 : 24     块 :8    IO块 : 4096  普通文件
设备 : fdooh/64768d   Inode : 35493573  硬链接∶1
权限 : ( 0644/- rw- r--r-- )  Uid : ( 0/ root)  Gid : (  0/  root)
环境 : unconfined_u: object_r: admin_home_t: so
最近访问:2023-04-05 11:31:37.678858345 +080O
最近更改:2023-04-05 11:31:35.590867350 +080O
最近改动:2023-04-05 11:31:53.385790608 +080O
创建时间: -


awk:以关键字分隔查看内容

awk -F ":" '{print $2}' 文件路径
[root@localhost ~]# cat /home/a
aaaa:skas:asdd
[root@localhost ~]# awk -F ":" '{print $2}' /home/a
skas


sort: 排序

[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd #以: 分隔,将第三列按字数升序
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd -r #以: 分隔,将第三列按字数降序
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd |head #以: 分隔,将第三列按字数升序看前十行
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd |tail #以: 分隔,将第三列按字数升序看后十行
参数详解:
sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序
head 默认输出前十行
tail 默认输出后十行


wc :统计数据

wc -l :统计有多少行数据


find : 针对文件属性查找文件

-name : 按文件名查找
[root@linux-server ~]# find /var/cache/yum/ -name "*.rpm" #查找/var/cache/yum下以.rpm结尾的文件
[root@qfedu.com ~]# find /etc -iname "Ifcfg-ens33"     #-i忽略大小写


-size : 按文件大小查找

[root@qfedu.com ~]# find /etc -size +5M  #查找大于5M
[root@qfedu.com ~]# find /etc -size 5M  #等于5M
[root@qfedu.com ~]# find /etc -size -5M  #小于5M
​
[root@qfedu.com ~]# find / -size +3M -a -size -5M   #查找/下面大于3M而且小于5M的文件 —a:and
[root@qfedu.com ~]# find / -size -1M -o -size +8M   #查找/下面小于1M或者大于8M的文件 -o:or
[root@qfedu.com ~]# find / -size -3M -a -name "*.txt" #查找/下面小于3M而且名字是以.txt结尾的文件


-atime/mtime/ctime : 按时间查找

-atime = access访问时间            #单位是 天
-mtime = modify改变时间 内容修改时间会改变
-ctime = change修改时间 属性修改时间会改变
​
-amin #分钟
-mmin
-cmin
[root@qfedu.com ~]# find /opt -mtime +5  #修改时间5天之前
[root@qfedu.com ~]# find /opt -atime -1  #访问时间1天之内
[root@qfedu.com ~]# find . -amin +1    #访问时间在1分钟之前


-type : 按文件类型查找

-type f:普通文件
-type l:链接文件
-type d:目录文件
-type b:设备文件
[root@qfedu.com ~]# find /dev -type f  


-perm : 按文件权限

[root@qfedu.com ~]# find . -perm 644     #查找当前目录下权限是644的文件或目录
[root@qfedu.com ~]# find /usr/bin -perm -4000 #包含set uid


-exec/xargs : 参数传递

-exec:参数是一个一个传递的,传递一个参数执行一次命令。
[root@qfedu.com ~]# find /etc -name "ifcfg*" -exec cp -rf {} /tmp \;   #exec命令查找带ifcfg开头的文件复制到tmp下
[root@qfedu.com ~]# find /home/ -name test* -exec tar cvzf test.tar.gz {} \; #由于-exec是一次一次执行,所以会产生覆盖导致最终只会产生一个tar.gz文件,故需要将 “\;” 改成 “+;” 
xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。
[root@qfedu.com ~]# # find /home/ -name "test*" | xargs -i cp {} /tmp/ #找到之后删除处理xargs 参数传递
区别:
1、exec每处理一个文件或者目录,它都需要启动一次命令,效率不好; 
2、xargs不能操作文件名有空格的文件;


ping : 检查主机是否可以联网

[root@linux-server ~]# ping www.baidu.com #ping命令,可以检查主机是否可以联网
PING www.a.shifen.com (183.232.231.174) 56(84) bytes of data.
​
[root@linux-server ~]# ping -c 3 www.baidu.com
-c:指定次数


ntp :实现服务器对时

[root@localhost ~]# yum install ntp
[root@localhost ~]# ntpdate ntp.aliyun.com 
[root@localhost ~]# ntpdate cn.pool.ntp.org #cn.pool.ntp.org是ntp网络授时组织的中国授时源


which :查找命令

[root@qfedu.com ~]# which cd
/usr/bin/cd


查看文件内容
cat:查看一个文件的全部内容

cat -n : 显示行号
cat -A : 显示控制字符


head :头部

[root@linux-server ~]# head /etc/passwd //默认查看前十行
[root@linux-server ~]# head -2 /etc/passwd //查看前两行


tail :尾部

[root@linux-server ~]# tail /etc/passwd //默认查看文件的后十行
[root@linux-server ~]# tail -1 /etc/passwd //查看文件最后一行
[root@linux-server ~]# tail /var/log/messages
[root@linux-server ~]# tail -f /var/log/secure //-f 动态查看文件的尾部
[root@linux-server ~]# tailf /var/log/secure //功能同上


grep:过滤关键字    

过滤文件中带有root的内容:
[root@linux-server ~]# grep 'root' /etc/passwd
过滤以root开头的行:^ --以什么开头
[root@linux-server ~]# grep '^root' /etc/passwd
过滤以bash结尾的行:$ --以什么结尾
[root@linux-server ~]# grep 'bash$' /etc/passwd


less :分页显示

[root@linux-server ~]# less /etc/makedumpfile.conf.sample
1.空格键是翻页 回车键是翻行
2.上下箭头可以来回翻
3./关键字  #搜索 (n按关键字往下翻 N按关键字往上翻)
4.快捷键:q -quit 退出

more :分页显示文件内容 

[root@qfedu.com ~]# more 文件名   
空格键是翻页 回车键是翻行
用户管理


useradd / userdel / usermod  : 用户管理

-M : 不创建用户主目录
-r : 创建系统用户
​
[root@linux-server ~]# useradd user02 -u 503 //指定uid为503
[root@linux-server ~]# useradd user05 -s /sbin/nologin //创建用户并指定shell
[root@linux-server ~]# useradd user07 -G it,fd //创建用户,指定附加组
[root@linux-server ~]# useradd -g 1003 user8 #指定用户的主属组为1003组。 
[root@linux-server ~]# useradd user10 -u 4000 -s /sbin/nologin 
userdel -r :完全删除用户
1.修改用户名:
-l
[root@linux-server ~]# usermod -l NEW_name user8
[root@linux-server ~]# id user8
id: user8:无此用户
2.修改GID:
-g
[root@linux-server ~]# id user10
uid=1000(user10) gid=1000(tom) groups=1000(tom)
[root@linux-server ~]# usermod user10 -g new_gid #gid需要提前存在
3.修改UID
-u
[root@linux-server ~]# usermod -u new_id jack
[root@linux-server ~]# id jack
uid=1005(jack) gid=1004(jack) groups=1004(jack)
4.修改用户的登录shell
-s
[root@linux-server ~]# usermod -s /sbin/nologin user07 #修改用户的登录shell


groupadd / groupmod / groupdel:组管理

[root@linux-server ~]# groupadd hr //创建一个用户组叫hr
[root@linux-server ~]# groupadd net01 -g 2000 //创建组叫net01,并指定gid为2000
[root@linux-server ~]# grep 'net01' /etc/group //查看/etc/group中组net01信息
net01:x:2000:
[root@linux-server ~]#groupmod 参数 组名
-g:修改组的gid
-n:修改组名
[root@linux-server ~]#groupmod -g 2000 grp1
[root@linux-server ~]#groupmod -n 新组名 grp1
[root@linux-server ~]# groupdel net01 #删除组net01
注意:用户的主属组不能删除


gpasswd : 组成员管理
注意:只针对已存在的用户

1.给组添加账户
-a
[root@linux-server ~]# gpasswd -a user10 grp2
Adding user user10 to group grp2
2.同时添加多个用户到组
-M:members成员的缩写
[root@linux-server ~]# gpasswd -M tom,alice it (**会覆盖该组之前的组成员**)
3.从组删除用户
-d
[root@linux-server ~]# gpasswd -d user07 hr


权限管理
chown:改变文件或目录的所属主以及所属组

chown :(chown 属主.属组 文件名)
​
[root@linux-server ~]# chown alice.hr file1.txt //修改属主、属组
[root@linux-server ~]# chown tom file1.txt //修改属主
[root@linux-server ~]# chown .it file1.txt //只改属组
​
[root@linux-server ~]# chown -R alice.hr dir1 //递归修改---针对目录


chmod : 更改权限

基本权限类型:
读 :r ----> 4
写 :w ----> 2
执行: x(exec) -----> 1
​
[root@linux-server ~]# chmod -R a=rwx dir1 //递归更改目录及其中文件的权限
a. 使用符号*
​
[root@linux-server ~]# chmod u+x file1.txt  //属主增加执行
[root@linux-server ~]# chmod a=rwx file1.txt //所有人等于读写执行
[root@linux-server ~]# chmod a=- file1.txt //所有人都没有权限
[root@linux-server ~]# chmod ug=rw,o=r file1.txt //属主属组等于读写,其他人只读
[root@linux-server ~]# ll
-rw-rw-r--. 1 tom it  0 Nov 1 15:30 file1.txt
b.使用数字*
​
[root@linux-server ~]# chmod 644 file1.txt 
[root@linux-server ~]# ll file1.txt 
-rw-r--r--. 1 tom it 0 Nov 1 15:30 file1.txt
​
[root@linux-server ~]# chmod 755 file1.txt
[root@linux-server ~]# ll
-rwxr-xr-x 1 root root 0 Jul 23 22:40 file1.txt
​
[root@linux-server ~]# chmod 521 file1.txt
[root@linux-server ~]# ll
-r-x-w---x 1 root root 0 Jul 23 22:40 file1.txt


chgrp : 更改属组
[

root@linux-server ~]# chgrp hr file1.txt //更改文件file1.txt所属组为hr 
​
[root@linux-server ~]# chgrp -R hr dir1 //递归更改目录dir1及其中文件所属组为hr 


ACL权限
getfacl :查看文件或目录当前设定的 ACL 权限信息

[root@localhost ~]# getfacl 文件名


setfacl :直接设定用户或群组对指定文件的访问权限

setfacl -m:给用户或群组添加 ACL 权限


chattr:文件隐藏属性

[root@linux-server ~]# touch file1 file2 file3
1.查看文件属性
[root@linux-server ~]# lsattr file1 file2 file3  #查看文件隐藏属性
---------------- file1
---------------- file2
---------------- file3
2.设置权限
[root@linux-server ~]# chattr +a file1 #不允许修改,只允许追加
[root@linux-server ~]# chattr +i file2 #不允许做任何操作
[root@linux-server ~]# chattr +A file3
[root@linux-server ~]# lsattr file1 file2 file3
-----a---------- file1
----i----------- file2
-------A-------- file3
​
i:即Immutable,系统不允许对这个文件进行任何的修改
a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何覆盖或截断这个文件
A:即Atime,告诉系统不要修改对这个文件的最后访问时间
​
取消权限
[root@linux-server ~]# chattr -a file1 
[root@linux-server ~]# chattr -i file2 


管道与重定向

awk:过滤并输出文件中符合条件的内容
awk -F "分隔符" '{print $第几列}'
[root@localhost ~]# cat /home/aaa
sdjlasjlk
asldjasjlkdasjl
[root@localhost ~]# grep 'sd' /home/aaa | awk -F "j" '{print $2}' #过滤aaa中的一行内容然后将结果通过管道传递给                  awk,过滤并输出以j为分隔符的第二列内容
las


sort: 排序

[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd #以: 分隔,将第三列按字数升序
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd -r #以: 分隔,将第三列按字数降序
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd |head #以: 分隔,将第三列按字数升序看前十行
[root@qfedu.com ~]# sort -t":" -k3 -n /etc/passwd |tail #以: 分隔,将第三列按字数升序看后十行
参数详解:
sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序
head 默认输出前十行
tail 默认输出后十行


xargs:参数传递

对与 ls cp rm mv命令,管道不能执行。所以通过xargs实现。
​语法:cat a.txt | xargs -i cp {} /目录 {}:前面传过来的内容-i :为了让大括号生效目录时 -r解释:前面传过来的东西交给大括号cat file.txt |xargs ls -l     前面是目录或者目录的路径。 ls - l 后面可以不加大括号,直接执行。[root@qfedu.com ~]# touch /home/file{1..5}
[root@qfedu.com ~]# # cat files.txt | xargs -i cp -rvf {} /tmp/
‘/home/file1’ -> ‘/tmp/file1’
‘/home/file2’ -> ‘/tmp/file2’
‘/home/file3’ -> ‘/tmp/file3’
‘/home/file4’ -> ‘/tmp/file4’
‘/home/file5’ -> ‘/tmp/file5’


软件管理
rpm:管理软件

rpm -ivh 软件包:安装软件
-i install 安装
-vh verbose human 人性化显示安装过程
-u upgrade 升级


rpm -q{a,l,f} 软件包:查询

==查询 
(从本地的rpm数据库)
-q query (查询)
-l list (列出)
-f file
-a all
rpm -ql 软件包名 :列出某个软件包安装后,生成了哪些文件以及文件对应的存储位置
​
[root@linux-server ~]# rpm -qa | grep 软件名 # 查找软件是否安装
[root@linux-server ~]# rpm -ql httpd     #查询http安装的文件
[root@linux-server ~]# rpm -qf /usr/share/httpd/noindex  #查询该文件属于哪个包,只能查询已经安装好的软件


rpm -e:删除软件

语法:# rpm -e 软件名称
-e erase的意思
[root@linux-server ~]# rpm -e httpd


yum:管理软件

清理yum缓存:(元数据建立)# yum clean all缓存软件包信息:  提高搜索/安装软件的速度# yum makecache
查询yum源信息:  #也具有缓存功能# yum repolist 查看命令属于哪个软件# yum provides rz 查看系统已经安装好的软件和没有安装的软件(源里存在即可查到):# yum list安装软件:# yum -y install 软件名称 


进程管理

ps aux/ps -ef:静态查看进程
[root@linux-server ~]# ps aux 
USER   PID %CPU %MEM VSZ RSS TTY  STAT START TIME COMMAND
============================================================================
USER:  #运行进程的用户
PID: #进程ID
%CPU: #CPU占用率
%MEM: #内存占用率
VSZ  进程占用的虚拟内存大小 ,一般以B为单位
RSS  占用的物理内存大小
TTY  终端 (?表示不占用终端) (? 表示没有占用终端) 
STAT: #进程状态 ---了解
START: #进程的启动时间
TIME: #进程占用CPU的总时间
COMMAND: #进程文件,进程名
[root@linux-server ~]# ps aux | less
参数解释:
ps :process nsapashot
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
[root@linux-server ~]# ps -ef
参数解释:
-e 显示所有进程
-l 长格式显示
-f 完整格式


cat ... :查看单个PID

[root@linux-server ~]# systemctl start httpd #启动
[root@linux-server ~]# cat /var/run/httpd/httpd.pid
1043


ps aux | grep '进程名':查看指定PID

[root@linux-server ~]# ps aux | grep sshd
root       1043  0.0  0.2 105996  4120 ?        Ss   01:32   0:00 /usr/sbin/sshd -D


netstat -tlanp:查看端口

ip地址: 为了确定一个服务器在互联网的位置
服务端口: 为了确定一个服务在服务器中位置
#查网络进程和正在监听的端口
[root@linux-server ~]# netstat -tlanp    (该命令对应的包名:net-tools)
参数详解:
-a  显示全部的进程
-u  显示udp
-n  以数字的新式显示协议名称
-t   tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口[root@localhost ~]# netstat -alntp | grep 'sshd'(可跟端口号/进程名/PID)       ##可查看到sshd服务的端口号是22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1106/sshd           
tcp        0      0 192.168.201.142:22      192.168.201.1:10025     ESTABLISHED 17303/sshd: root@no 
tcp        0      0 192.168.201.142:22      192.168.201.1:10024     ESTABLISHED 17034/sshd: root@no 
tcp      104      0 192.168.201.142:22      192.168.201.1:9813      ESTABLISHED 1820/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      1106/sshd   

        
lsof -i:端口号  :根据端口号查询进程

[root@linux-server ~]# yum install lsof  #安装软件包
[root@linux-server ~]# lsof -i:80   #端口号,这能查看带端口的进程
COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd   64249   root    4u  IPv6 1373628      0t0  TCP *:http (LISTEN)


top:动态查看进程

[root@linux-server ~]# top  #动态显示信息,三秒刷新一次。


kill/pkill:进程控制

kill,pkill
语法: kill 信号 PID   #信号也是进程间通信的一种方式pkill 信号 进程名
[root@linux-server ~]# kill -l   #查看所有信号
-1   HUP  重新加载进程或者重新加载配置文件,PID不变
-9   KILL 强制杀死
-15  TERM 正常杀死(这个信号可以默认不写)
-18  CONT 激活进程
-19  STOP 挂起进程
进程状态解释--了解:
+:表示运行在前台的进程组
S+:休眠状态
T+:暂停,挂起状态
s:父进程


jobs:作业控制

sleep 工作号 &         :让命令或程序后台运行
sleep 工作号 #ctrl Z   :把程序从前台放到后台并暂停
jobs                   :查看后台工作号
bg %工作序号            :让暂停的程序在后台运行
fg %工作序号           :将后台的程序调到前台


常用命令
uptime : 查看当前CPU负载
free -m : 查看内存使用情况
查看系统版本和内核

[root@linux-server ~]# cat /etc/redhat-release  #查看版本
CentOS Linux release 7.4.1708 (Core)
[root@linux-server ~]# uname -a #看查正在运行的内核版本
Linux linux-server 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@linux-server ~]# uname -r  #查看内核版本
3.10.0-693.el7.x86_64


修改主机名

[root@linux-server ~]# hostnamectl set-hostname  xxxx   #主机名,修改完之后断开与终端连接,然后在重新连接即可。
查看主机名
[root@linux-server ~]# hostnamevim /etc/hostname   #直接更改hostname,然后reboot重启


lrzsz : 上传下载

# yum install -y lrzsz
上传
# rz
下载
# sz 文件


计划任务
at : 一次调度执行
at使用规则

[root@linux-server ~ ]# yum -y install at     
[root@linux-server ~ ]# systemctl status atd    #查看启动状态
[root@linux-server ~ ]# systemctl start atd        #首先要启动服务
方式一:
[root@linux-server ~ ]# at now +1min    #一分钟后开始执行
at> useradd uuuu  
at> <EOT>         #Ctrl+D
job 1 at Sat Mar 21 22:34:00 2015
方式二:
[root@linux-server ~ ]# vim at.jobs 
useradd u99 
[root@linux-server ~ ]# at 20:33 < at.jobs   #在20:33执行计划任务at是以输入重定向方式将文件中的内容输入给at调度执行任务,所以不需要执行文件,即不需要给予执行权限。


atq : 查看一次性计划任务

# atq
2    Tue Aug  9 14:29:00 2022 a root


atrm : 删除一次性计划任务

# atrm  计划任务序号


cron :循环调度执行  用户级    

crontab -l                //列出当前用户的计划任务
crontab -r                //删除当前用户所有的计划任务    
crontab -e                //编辑当前用户的计划任务
crontab -u username     //(仅管理员可使用)管理其他用户的计划任务

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

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

相关文章

java VR全景商城免费搭建 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商城 分销商城 短视频商城

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

Django学习日志07

多表查询&#xff08;跨表查询&#xff09; 子查询&#xff1a;分步查询 链表查询&#xff1a;把多个有关系的表拼接成一个大表(虚拟表) inner join left join 展示左表所有数据数据&#xff0c;右表展示符合查询条件的数据&#xff0c;查询不到的用null填充 …

基于go标准分层架构项目设计实现

基于go标准分层架构项目设计实现 缘起 个人博客网址 最近主要看了两方面知识&#xff0c;一方面是技术相关的&#xff0c;如何设计一个比较好的后端架构项目代码&#xff1b;一方面是非技术相关的&#xff0c;如何写一篇好的技术文章&#xff0c;能够让他人读懂并有收获。因…

如何选择示波器?

简介 对于很多工程师来讲&#xff0c;从市场中上百款不同价格和规格的各种型号的示波器中&#xff0c;选择一台新示波器是一件很挠首的事情。本文就旨在指引你拨开迷雾&#xff0c;希望能帮助你避免付出昂贵的代价。 重中之重 选择示波器的第一步不是要看那些示波器的广告和规…

GPS信号的数字接收处理matlab仿真,包括频率点搜索,捕获跟踪,相关峰检测等步骤

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. 频率点搜索 4.2. 捕获跟踪 4.3. 相关峰检测 5.算法完整程序工程 1.算法运行效果图预览 低信噪比下仿真结果如下&#xff1a; 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...…

使用DHorse发布SpringBoot项目到K8S

前言 在介绍DHorse的操作之前&#xff0c;先来介绍一下使用k8s发布应用的步骤&#xff0c;以SpringBoot应用为例进行说明。 1.首先从代码仓库下载代码&#xff0c;比如GitLab&#xff1b; 2.接着进行构建&#xff0c;比如使用Maven&#xff1b; 3.如果要使用k8s作为编排&am…

Atlassian午餐会直播回顾:如何拓展Jira工作流,加强团队协作?

工作流&#xff0c;这不仅是Jira的心脏&#xff0c;更是团队合作的魔法核心。 Jira中的工作流不仅仅是代码和配置&#xff0c;它更像是激活团队协作魔法的咒语。每一个环节&#xff0c;每一次流转&#xff0c;都充分展现了团队的独特魅力和智慧&#xff0c;让各种业务难题都能…

探伤仪的曲线

超声波检验DAC曲线、AVG曲线的区别、使用及制作方法 一、 概念 1.1 DAC曲线 DAC距离波幅曲线是描述某一确定反射体回波高度随距离变化的关系曲线。因此&#xff0c;AVG曲线和DAC曲线都有纵波、横波制作的曲线&#xff0c;并不是简单地由纵波、横波来划分何为AVG曲线&#xf…

js对后台数据库中blob类型的数据,进行二进制解码并解决中文乱码

后端 后端是在使用activiti7时&#xff0c;一个查询了部署了的流程图&#xff0c;对应的一个存在数据库中&#xff0c;数据类型为blob类型的值的这么一个接口 /*** 根据流程定义id查看流程图(xml或者图片)**/GetMapping(value "/selectPicture")public AjaxResult g…

Qt信号和槽的五种连接方式

enum ConnectionType {AutoConnection,DirectConnection,QueuedConnection,BlockingQueuedConnection,UniqueConnection 0x80 };这五种连接方式用于指定信号和槽之间的调用方式&#xff0c;它们的区别如下&#xff1a; AutoConnection&#xff08;默认&#xff09;&#xff1…

Kafka的重要组件,谈谈流处理引擎Kafka Stream

系列文章目录 上手第一关&#xff0c;手把手教你安装kafka与可视化工具kafka-eagle Kafka是什么&#xff0c;以及如何使用SpringBoot对接Kafka 架构必备能力——kafka的选型对比及应用场景 Kafka存取原理与实现分析&#xff0c;打破面试难关 防止消息丢失与消息重复——Kafka可…

Spring Boot中配置文件生效位置

1. 配置文件位置 首先小伙伴们要明白&#xff0c;Spring Boot 默认加载的配置文件是 application.properties 或者 application.yaml&#xff0c;properties优先级高于yaml。默认的加载位置一共有五个&#xff0c;五个位置可以分为两类&#xff1a; 从 classpath 下加载&…

「Qt Widget中文示例指南」如何创建一个计算器?(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 本文将展示如何使用…

45.120.101.X 如何找出网站建设中弱点和漏洞

漏洞扫描服务&#xff08;Vulnerability Scan Service&#xff09;集Web漏洞扫描、操作系统漏洞扫描、资产内容合规检测、配置基线扫描、弱密码检测五大核心功能&#xff0c;自动发现网站或服务器在网络中的安全风险&#xff0c;为云上业务提供多维度的安全检测服务&#xff0c…

再谈谈注解

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 注解&#xff0c;和反射…

成都瀚网科技有限公司抖音带货靠谱么

近年来&#xff0c;随着社交媒体的兴起&#xff0c;越来越多的企业开始利用抖音等短视频平台进行产品推广和销售。成都瀚网科技有限公司也紧跟潮流&#xff0c;通过抖音平台进行带货。那么&#xff0c;成都瀚网科技有限公司的抖音带货靠谱么&#xff1f;本文将从以下几个方面进…

网站监控的重要性及实施策略

随着互联网的快速发展&#xff0c;网站已经成为企业和个人不可或缺的在线服务平台。然而&#xff0c;网站的安全性和稳定性一直是企业及个人非常关注的问题。一旦网站出现故障或者被攻击&#xff0c;将会给企业和个人带来严重的损失。因此&#xff0c;实施有效的网站监控策略对…

Node.js之Buffer(缓冲器)

Buffer的概念 Buffer 是一个类似于数组的 对象&#xff0c;用于表示固定长度的字节序列 Bufer 本质是一段内存空间&#xff0c;专门用来处理 二进制数据。 Buffer创建方法 // 1.alloc let buf1 Buffer.alloc(10) // 使用alloc创造buffer的方法 是一个二进制类 都会归零 cons…

为什么 Django 后台管理系统那么“丑”?

哈喽大家好&#xff0c;我是咸鱼 相信使用过 Django 的小伙伴都知道 Django 有一个默认的后台管理系统——Django Admin 它的 UI 很多年都没有发生过变化&#xff0c;现在看来显得有些“过时且简陋” 那为什么 Django 的维护者却不去优化一下呢&#xff1f;原文作者去询问了多…

如何选择合适的域名注册商?需要考虑哪些方面因素?

随着互联网的快速发展&#xff0c;涌现出大大小小的众多域名注册服务商&#xff0c;但这些域名注册服务商在技术、服务、价格等方面参差不齐&#xff0c;给域名注册者带来了很多困扰。那么该如何选择合适的域名注册商呢&#xff1f;选择域名注册商需要考虑哪些方面呢&#xff1…