Linux(一)

目录结构

【在 Linux 世界里,一切皆文件】

linux 的文件系统是采用级层式的树状目录结构;

序号名称介绍备注
1/:根目录一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始;
当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
 
2

/bin [常用]:

(/usr/bin 、 /usr/local/bin)

是 Binary 的缩写, 这个目录存放着最经常使用的命令;
可执行二进制文件的目录,如常用的命令 ls、 tar、 mv、 cat 等
 
3

/sbin :

/usr/sbin 、 /usr/local/sbin

s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序 
4/home [常用]存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名;
系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
~ 表示当前用户的家目录
~edu 表示用户 edu 的家目录
 
5/root [常用]该目录为系统管理员,也称作超级权限者的用户主目录;
系统管理员root的家目录
 
6/lib系统开机所需要最基本的动态连接共享库
其作用类似于 Windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库
 
7/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件 
8/etc [常用]

所有的系统管理所需要的配置文件和子目录
不建议在此目录下存放可执行文件
重要的配置文件有:

  • /etc/inittab
  • /etc/fstab
  • /etc/init.d
  • /etc/X11
  • /etc/sysconfig
  • /etc/xinetd.d
 
9/boot [常用]

存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件;
例如: linux 的内核文件: /boot/vmlinuz;

系统引导管理器: /boot/grub

 
10/proc [不能动]这个目录是一个虚拟的目录
它是系统内存的映射,访问这个目录来获取系统信息
 
11/srv [不能动] service 缩写该目录服务启动之后需要访问的数据目录
如 www 服务需要访问的网页数据存放在 /srv/www 内
 
12/sys [不能动]这是 linux2.6 内核的一个很大的变化该目录下安装了 2.6 内核中新出现的一个文件系统 
13/tmp一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下  
14/dev类似于 windows 的设备管理器,把所有的硬件用文件的形式存储;
存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount/dev/cdrom /mnt
 
15/media [常用]linux 系统会自动识别一些设备;
例如 U 盘、光驱等等,当识别后, linux 会把识别的设备挂载到这个目录下
 
16/mnt [常用]系统提供该目录是为了让用户临时挂载别的文件系统的;
我们可以将外部的存储挂载在/mnt/上,然后进入该目录,就可以查看里的内容 d:/myshare
 
17/opt这是给主机额外安装软件所存放的目录 默认为空;
如安装 ORACLE 数据库就可放到该目录下
 
18/var [常用]这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下包括各种日志文件
例如:
/var/log:随时更改的日志文件
/var/spool/mail:邮件存放的目录
/var/run:程序或服务启动后,其 PID 存放在该目录下
 
19

/selinux

[security-enhanced linux]

SELinux 是一种安全子系统,它能控制程序只能访问特定文件, 有三种工作模式,可以自行设置. 
20/usr [常用]这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与 windows 下的 program files 目录
例如:
/usr/bin:存放应用程序
/usr/share:存放共享数据
/usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
/usr/local:存放软件升级包 ;这是另一个给主机额外安装软件所安装的目录;一般是通过编译源码方式安装的程序
/usr/share/doc:系统说明文件存放目录
/usr/share/man:程序说明文件存放目录
/usr/local [常用]
 

centos下载

以网易镜像站来做演示:

1、首先我们输入网址 http://mirrors.163.com/进到网易开源镜像站。

这里给我们提供了很多资源,大家可根据自己的需求去 search!

2、我们点击进入 CentOS 这一选项,可以看到有很多版本供大家选择,这里我们选 7.8 版本。

3、点击版本后进入这一目录,我们点击进入这一选项。

4、选择“X86”就好。

5、在这里我们可以看到有不同版本的镜像,可以根据自己的需求进行下载。


安装CentOS7.6

检查 BIOS 虚拟化支持

新建虚拟机

 

 

配置虚拟机的内存

配置处理器, 分配的处理器内核多,虚拟机速度快

配置网络

 

正式安装 Centos 系统

 说明: 选择第一个,不需要 Test this media ,否则检测时间很长

 

选择安装软件,默认是最小化安装.

软件选择(套餐):

需要什么,安装好后也可以再安装。也可以根据需要勾选附加项, 比如这里我勾选了兼容库和基本开发工具(jdk,gcc), 安装好后,也可以卸载,更新等操作

【备注:实际生产中选用最小安装;】

安装位置,进行分区操作

【备注:注意要耐心等待,不要鼠标乱点】

 

先指定/boot 分区,即引导分区,大小为 1G, 然后点击添加挂载点.

 

 

swap 分区设备类型和文件系统

[备注:实际生产过程中打开 Kdump]

设置网络和主机名, 安装好后也可以设置

设置你的主机名,然后点击完成即可.

点击开始安装就开始了

注意:在实际生产环境,密码一定要复杂,否则容易造成安全隐患

创建其它用户,也可以安装成功后,再创建

 

完成后面的设置

 

默认以普通用户登录,可以切换成 root, 点击未列出

连接网络,就可以上网了


contos安装mysql5.7(CentOS7.6) 

1.新建文件夹/opt/mysql,并cd进去 : mkdir /opt/mysql

2.运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包

PS:centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。

3.运行tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

4.运行rpm -qa|grep mari,查询mariadb相关安装包

5.运行rpm -e --nodeps mariadb-libs,卸载

6.然后开始真正安装mysql,依次运行以下几条

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

7.运行systemctl start mysqld.service,启动mysql

8.然后开始设置root用户密码

Mysql自动给root用户设置随机密码,运行grep "password" /var/log/mysqld.log可看到当前密码

9.运行mysql -u root  -p,用root用户登录,提示输入密码可用上述的,可以成功登陆进入mysql命令行

10.设置root密码,对于个人开发环境,如果要设比较简单的密码(生产环境服务器要设复杂密码),可以运行

set global validate_password_policy=0;  提示密码设置策略

(validate_password_policy默认值1,)

11.set password for 'root'@'localhost' =password('hspedu100');

12.运行flush privileges;使密码设置生效


Centos7启动流程分析

第一步、硬件启动阶段

  这一步和CentOS6差不多,详细请看图

第二步、GRUB2引导阶段

  从这一步开始,CentOS6和CentOS7的启动流程区别开始展现出来了。CentOS7的主引导程序使用的是grub2。

  这一步的流程:显示加载两个镜像,再加载MOD模块文件,把grub2程序加载执行,接着解析配置文件/boot/grub2/grub.cfg,根据配置文件加载内核镜像到内存,之后构建虚拟根文件系统,最后转到内核。

  在这里grub.cfg配置文件已经比较复杂了,但并不用担心,到了CentOS7中一般是使用命令进行配置,而不直接去修改配置文件了。不过我们可以看到grub.cfg配置文件开头注释部分说明了由/etc/grub.d/目录下文件和/etc/default/grub文件组成。

  一般修改好配置后都需要使用命令grub2-mkconfig -o /boot/grub2/grub.cfg,将配置文件重新生成。

第三步、内核引导阶段

  这一步与CentOS6也差不多,加载驱动,切换到真正的根文件系统,唯一不同的是执行的初始化程序变成了/usr/lib/systemd/systemd

第四步、systemed初始化阶段(又叫系统初始化阶段)

  CentOS7中我们的初始化进程变为了systemd。执行默认target配置文件/etc/systemd/system/default.target(这是一个软链接,与默认运行级别有关)。然后执行sysinit.target来初始化系统和basic.target来准备操作系统。接着启动multi-user.target下的本机与服务器服务,并检查/etc/rc.d/rc.local文件是否有用户自定义脚本需要启动。最后执行multi-user下的getty.target及登录服务,检查default.target是否有其他的服务需要启动。

  注意:/etc/systemd/system/default.target指向了/lib/systemd/system/目录下的graphical.target或multiuser.target。而graphical.target依赖multiuser.target,multiuser.target依赖basic.target,basic.target依赖sysinit.target,所以倒过来执行。

  System概述(了解):systemd即为system daemon,是Linux下的一种init软件,开发目标是提供更优秀的框架以表示系统服务间的以来关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell系统开销的效果,最终代替现在常用的System V与BSD风格的init程序。

  与多数发行版使用的System V风格的init相比,systemd采用了以下的新技术:A.采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;B.用Cgroup代替PID来追踪进程,即使是两次fork之后生成的守护进程也不会脱离systemd的控制。

  unit对象:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其他与init相关的信息。(也就是CentOS6中的服务器启动脚本)

(1)./etc/systemd/system/default.target

  这是一个软链接,和默认运行级别相关

# ll /etc/systemd/system/default.target

lrwxrwxrwx. 1 root root 36 12月  9 15:47 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target

我们可以到这个目录下看看

# cd /lib/systemd/system/

# ls *.target

anaconda.target            local-fs.target           runlevel2.target

basic.target               machines.target           runlevel3.target

bluetooth.target           multi-user.target         runlevel4.target

cryptsetup-pre.target      network-online.target     runlevel5.target

cryptsetup.target          network-pre.target        runlevel6.target

ctrl-alt-del.target        network.target            shutdown.target

default.target             nfs-client.target         sigpwr.target

emergency.target           nss-lookup.target         sleep.target

final.target               nss-user-lookup.target    slices.target

getty-pre.target           paths.target              smartcard.target

getty.target               poweroff.target           sockets.target

graphical.target           printer.target            sound.target

halt.target                rdma-hw.target            suspend.target

hibernate.target           reboot.target             swap.target

hybrid-sleep.target        remote-cryptsetup.target  sysinit.target

initrd-fs.target           remote-fs-pre.target      system-update.target

initrd-root-fs.target      remote-fs.target          timers.target

initrd-switch-root.target  rescue.target             time-sync.target

initrd.target              rpcbind.target            umount.target

iprutils.target            rpc_pipefs.target         virt-guest-shutdown.target

kexec.target               runlevel0.target

local-fs-pre.target        runlevel1.target

这里可以看到runlevel开头的target文件,对应着CentOS6的启动级别,不过一样是软链接,指向了同目录下的其他文件,也算一种向下兼容吧

# ll runlevel*.target

lrwxrwxrwx. 1 root root 15 4月   5 22:10 runlevel0.target -> poweroff.target

lrwxrwxrwx. 1 root root 13 4月   5 22:10 runlevel1.target -> rescue.target

lrwxrwxrwx. 1 root root 17 4月   5 22:10 runlevel2.target -> multi-user.target

lrwxrwxrwx. 1 root root 17 4月   5 22:10 runlevel3.target -> multi-user.target

lrwxrwxrwx. 1 root root 17 4月   5 22:10 runlevel4.target -> multi-user.target

lrwxrwxrwx. 1 root root 16 4月   5 22:10 runlevel5.target -> graphical.target

lrwxrwxrwx. 1 root root 13 4月   5 22:10 runlevel6.target -> reboot.target

可以看到我的default.target与runlevel5.target指向的是同一个文件,可以看出我的默认运行级别是5。

(2)./usr/lib/systemd/system/

这个目录存储每个服务的脚本,类似CentOS6的/etc/init.d/。

(2)./run/systemd/system/

系统执行过程中产生的脚本。

(3)./etc/systemd/system/

类似于CentOS6的/etc/rc.d/rc#.d/SXX类文件的功能,管理员建立的执行脚本,大部分是软链接

Over 


制作自己的min linux(基于CentOS7.6) 

首先,我们在现有的linux添加一块大小为20G的硬盘

点击完成,就OK了, 可以使用 lsblk 查看,需要重启

添加完成后,点击确定,然后启动现有的linux(centos7.6)。

通过fdisk来给我们的/dev/sdb进行分区

1 [root@localhost ~]# fdisk /dev/sdb

 2 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

 3 Building a new DOS disklabel with disk identifier 0x4fde4cd0.

 4 Changes will remain in memory only, until you decide to write them.

 5 After that, of course, the previous content won't be recoverable.

 6

 7 

 8 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 9

10 

11 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

12 switch off the mode (command 'c') and change display units to

13 sectors (command 'u').

14

15

16 Command (m for help): n

17 Command action

18 e extended

19 p primary partition (1-4)

20 p

21 Partition number (1-4): 1

22 First cylinder (1-2610, default 1):

23 Using default value 1

24 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +500M

25

26

27 Command (m for help): n

28 Command action

29 e extended

30 p primary partition (1-4)

31 p

32 Partition number (1-4): 2

33 First cylinder (15-2610, default 15):

34 Using default value 15

35 Last cylinder, +cylinders or +size{K,M,G} (15-2610, default 2610):

36 Using default value 2610

37 #查看分区

38 Command (m for help): p

39

40 

41 Disk /dev/sdb: 21.5 GB, 21474836480 bytes

42 255 heads, 63 sectors/track, 2610 cylinders

43 Units = cylinders of 16065 * 512 = 8225280 bytes

44 Sector size (logical/physical): 512 bytes / 512 bytes

45 I/O size (minimum/optimal): 512 bytes / 512 bytes

46 Disk identifier: 0x4fde4cd0

47

48 

49 Device Boot Start End Blocks Id System

50 /dev/sdb1 1 14 112423+ 83 Linux

51 /dev/sdb2 15 2610 20852370 83 Linux

52 #保存并退出

53 Command (m for help): w

54 The partition table has been altered!

接下来,我们对/dev/sdb的分区进行格式化

[root@localhost ~]# mkfs.ext4 /dev/sdb1

[root@localhost ~]# mkfs.ext4 /dev/sdb2

创建目录,并挂载新的磁盘

#mkdir -p /mnt/boot /mnt/sysroot

#mount /dev/sdb1 /mnt/boot

#mount /dev/sdb2 /mnt/sysroot/ 

安装grub, 内核文件拷贝至目标磁盘

#grub2-install --root-directory=/mnt /dev/sdb

#我们可以来看一下二进制确认我们是否安装成功

#hexdump -C -n 512 /dev/sdb   

#cp -rf /boot/*  /mnt/boot/

修改 grub2/grub.cfg 文件, 标红的部分 是需要使用 指令来查看的

在grub.cfg文件中 , 红色部分用 上面 sdb1 的 UUID替换,蓝色部分用 sdb2的UUID来替换, 紫色部分是添加的,表示selinux给关掉,同时设定一下init,告诉内核不要再去找这个程序了,不然开机的时候会出现错误的

### BEGIN /etc/grub.d/10_linux ###

menuentry 'CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-957.el7.x86_64-advanced-2eef594e-68fc-49a0-8b23-07cf87dda424' {

    load_video

    set gfxpayload=keep

    insmod gzio

    insmod part_msdos

    insmod ext2

    set root='hd0,msdos1'

    if [ x$feature_platform_search_hint = xy ]; then

      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  6ba72e9a-19ec-4552-ae54-e35e735142d4

    else

      search --no-floppy --fs-uuid --set=root 6ba72e9a-19ec-4552-ae54-e35e735142d4

    fi

    linux16 /vmlinuz-3.10.0-957.el7.x86_64 root=UUID=d2e0ce0f-e209-472a-a4f1-4085f777d9bb ro crashkernel=auto rhgb quiet LANG=zh_CN.UTF-8  selinux=0 init=/bin/bash

    initrd16 /initramfs-3.10.0-957.el7.x86_64.img

}

menuentry 'CentOS Linux (0-rescue-5bd4fb8d8e9d4198983fc1344f652b5d) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-5bd4fb8d8e9d4198983fc1344f652b5d-advanced-2eef594e-68fc-49a0-8b23-07cf87dda424' {

    load_video

    insmod gzio

    insmod part_msdos

    insmod ext2

    set root='hd0,msdos1'

    if [ x$feature_platform_search_hint = xy ]; then

      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  6ba72e9a-19ec-4552-ae54-e35e735142d4

    else

      search --no-floppy --fs-uuid --set=root 6ba72e9a-19ec-4552-ae54-e35e735142d4

    fi

    linux16 /vmlinuz-0-rescue-5bd4fb8d8e9d4198983fc1344f652b5d root=UUID=d2e0ce0f-e209-472a-a4f1-4085f777d9bb ro crashkernel=auto rhgb quiet selinux=0 init=/bin/bash

    initrd16 /initramfs-0-rescue-5bd4fb8d8e9d4198983fc1344f652b5d.img

}

### END /etc/grub.d/10_linux ###

7.创建目标主机根文件系统

#mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root} 

8.拷贝需要的bash(也可以拷贝你需要的指令)和库文件给新的系统使用

#cp /lib64/*.* /mnt/sysroot/lib64/

#cp /bin/bash /mnt/sysroot/bin/

9.现在我们就可以创建一个新的虚拟机,然后将默认分配的硬盘 移除掉,指向我们刚刚创建的磁盘即可.

这时,很多指令都不能使用,比如 ls , reboot 等,可以将需要的指令拷贝到对应的目录即可

如果要拷贝指令,重新进入到原来的 linux系统拷贝相应的指令即可,比较将 /bin/ls 拷贝到 /mnt/sysroot/bin  将/sbin/reboot 拷贝到 /mnt/sysroot/sbin

root@hspedu100 ~]# mount /dev/sdb2 /mnt/sysroot/

[root@hspedu100 ~]# cp /bin/ls /mnt/sysroot/bin/

[root@hspedu100 ~]# cp /bin/systemctl  /mnt/sysroot/bin/

[root@hspedu100 ~]# cp /sbin/reboot /mnt/sysroot/sbin/

再重新启动新的min linux系统,就可以使用 ls , reboot 指令了


其他

CUP内核的确认

开始-->任务管理器-->性能-->打开资源监视器-->2CPU,16个内核
    

常见的镜像站

    阿里云开源镜像站:https://mirrors.aliyun.com/

    清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/

    中科大开源软件镜像站:https://mirrors.ustc.edu.cn/

    网易云开源镜像站:http://mirrors.163.com/

    搜狐开源镜像站:http://mirrors.sohu.com/

    华为开源镜像站:https://mirrors.huaweicloud.com/

提示生成复杂密码

https://suijimimashengcheng.51240.com/

 网络连接方式

  

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

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

相关文章

Open CASCADE学习|曲面上一点的曲率及切平面

曲率(Curvature)是一个几何学的概念,用于描述一个物体的形状在某一点上的弯曲程度。在我们日常生活中,曲率与我们的生活息息相关,如道路的弯道、建筑物的拱形结构、自然界的山脉等等。了解曲率的概念和计算方法&#x…

Unity中开发程序打包发布

添加ESC脚本 使用Unity打包发布的过程中,考虑到打开的程序会处于全屏界面,而此时我们又会有退出全屏的需求,因此需要添加ESC脚本,当我们单击ESC脚本的过程中,退出全屏模式。 在Assets/Scenes下,创建esc.cs…

Python之PySpark简单应用

文章目录 一、介绍1.准备工作2. 创建SparkSession对象:3. 读取数据:4. 数据处理与分析:5. 停止SparkSession: 二、示例1.读取解析csv数据2.解析计算序列数据map\flatmap 三、问题总结1.代码问题2.配置问题 一、介绍 PySpark是Apa…

Linux离线安装Telnet

前言:由于服务器部署在内网环境,不能yum安装 1.先从网站下载好我们所需要到的三个rpm包http://www.rpmfind.net/linux/rpm2html/search.php?queryxinetd&submitSearch...&system&arch image.png 三个依赖包分别是: -rw-r--r-- 1…

Invicti Professional v24.1.0.43434

新的安全检查 添加了对 dotCMS 的检查添加了对 Ultimate Member WordPress 插件的检查添加了新的 mXSS 模式添加了新签名来检测 JWK 改进 改进了针对 Weak Ciphers Enabled 漏洞的建议改进了对 swagger.json 漏洞的检测添加了对 AWS WAFv2 规则的支持改进了更多错误和警告消…

探索Gin框架:Golang使用Gin完成文件上传

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 在之前的文章中,我们讲解了Gin框架的快速入门使用,今天我们来聊聊如何使用…

element-ui button 仿写 demo

基于上篇 button 源码分享写了一个简单 demo&#xff0c;在写 demo 的过程中&#xff0c;又发现了一个小细节&#xff0c;分享一下&#xff1a; 1、组件部分&#xff1a; <template><buttonclass"yss-button"click"handleClick":class"[ty…

STM32目录结构

之前一直头疼的32目录&#xff0c;比51复杂&#xff0c;又没有C规律&#xff0c;也不像python脚本文件关联不强&#xff0c;也不像工整的FPGA工程&#xff0c;编的时候到处放&#xff0c;爆出的错千奇百怪。短暂整理了一个&#xff0c;还是没有理得很轻。 startup_stm32f10x_m…

基于python+django,我开发了一款药店信息管理系统

功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 功能包括&#xff1a;药品管理、分类管理、顾客管理、用户管理、日志管理、系统信息模块。 代码结构 server目录是后端代码web目录是前端代码 部署运行…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(十六)

商家端订单管理模块 1. 订单搜索1.1 需求分析和设计1.2 代码实现1.2.1 admin/OrderController1.2.2 OrderService1.2.3 OrderServiceImpl 2. 各个状态的订单数量统计2.1 需求分析和设计2.2 代码实现2.2.1 admin/OrderController2.2.2 OrderService2.2.3 OrderServiceImpl2.2.4 …

浅谈UI自动化测试

为了让对自动化技术感兴趣的朋友们有真实案例的支持&#xff0c;今天我们给大家带来一期适合新手的UI自动化测试介绍。我们的目标是让大家能够轻松理解UI自动化测试的概念&#xff0c;并且能够亲自动手去实践。通过这个介绍&#xff0c;大家能够对UI自动化测试有一个整体的理解…

【Linux C | I/O模型】Unix / Linux系统的5种IO模型 | 图文详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

2016年苏州大学837复试机试C/C++

2016年苏州大学复试机试 第一题 题目 公鸡5元一只&#xff0c;母鸡3元一只&#xff0c;幼鸡1元3只。若100元钱买了100只鸡&#xff0c;问其中公鸡、母鸡、幼鸡各多少只&#xff1f; 博主注&#xff1a;此题经典百元买百鸡问题&#xff0c;出自&#xff1a;公元5世纪末&#…

模拟钉钉官网动画

实现思路&#xff1a;利用粘性定位sticky&#xff0c;以及滚动事件实现。首先我们应该设置滚动动画开始位置和结束位置 &#xff0c;然后根据位置计算透明度或者transform&#xff0c;scale的值。 首先根据上述图线计算属性值&#xff0c;代码如下&#xff1a; function creat…

PHP漏洞查询

CVE - Search CVE List (mitre.org) 美国国家漏洞数据库&#xff08;需要梯子&#xff09; NATIONAL VULNERABILITY DATABASE NVD - Search and Statistics (nist.gov) 基本都能查询到&#xff0c;传结果详情页里面会有一些解决方案的连接 PHP的官方网站 PHP :: Bugs :: Se…

C语言探索:水仙花数的奥秘与计算

摘要&#xff1a; 水仙花数&#xff0c;一种特殊的三位数&#xff0c;其各位数字的立方和等于该数本身。本文将详细介绍水仙花数的定义、性质&#xff0c;以及如何使用C语言来寻找100至999范围内的水仙花数。 目录 一、水仙花数的定义与性质 二、用C语言寻找100至999范围内的…

Camunda 流程引擎API介绍

&#x1f496;专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据&#xff0c;完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧&#x1f618; &#x1f496;Services …

病历管理系统

技术架构&#xff1a; StrutsSpringHibernate 有需要该项目的小伙伴可以私信我你的Q。 功能描述&#xff1a; 企业财务管理系统主要用于电子病历来提高医院各项工作的效率和质量&#xff0c;促进医学科研、教学&#xff1b;减轻各类事务性工作的劳动强度&#xff0c;使他们…

LCR 193. 二叉搜索树的最近公共祖先

解题思路&#xff1a; 小的在左子树&#xff0c;大的在右子树。 class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root.val<p.val&&root.val<q.val)return lowestCommonAncestor(root.right,p,q);if(root.va…

深度揭秘:代理IP的工作原理及其在网络安全中的关键角色

代理IP的工作原理及其在网络安全中的关键角色是一个相对复杂但非常重要的主题。以下是对这一内容的深度揭秘&#xff1a; 代理IP的工作原理 1. 请求转发 当一个客户端&#xff08;如浏览器或爬虫程序&#xff09;使用代理IP时&#xff0c;它不是直接与目标网站通信&#xff0c…