Linux(一)

介绍

常见的操作系统(windows、IOS、Android、MacOS, Linux, Unix);

一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可;目前很多企业级的项目(c/c++/php/python/java/go)都会部署到 Linux/unix 系统上。


吉祥物
    

xLinux 之父:    Linus Torvalds ; Git 创作者 ; 世界著名黑客。

主要发行版:    Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE等

与Unix的关系


应用领域

个人桌面领域

  •     传统 linux 应用薄弱的环节
  •     随着 ubuntu、fedora [fɪˈdɔ:rə] 等优秀桌面环境的兴起,比重在增加

服务器领域

  •     应用是最强
  •     linux 免费、稳定、高效等特点在这里得到了很好的体现
  •     尤其在一些高端领域尤为广泛(c/c++/php/java/python/go)

嵌入式领域

  •     主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域;
  •     以后在物联网中应用会更加广泛;
  •     linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高

目录结构

【在 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、首先我们输入网址 欢迎访问网易开源镜像站 进到网易开源镜像站。

这里给我们提供了很多资源,大家可根据自己的需求去 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个内核
    

常见的镜像站

    阿里云开源镜像站:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

    清华大学开源软件镜像站:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

    中科大开源软件镜像站:USTC Open Source Software Mirror

    网易云开源镜像站:欢迎访问网易开源镜像站

    搜狐开源镜像站:Index of /

    华为开源镜像站:华为开源镜像站_软件开发服务_华为云

提示生成复杂密码

生成随机密码 - 密码生成器 - 密码批量生成器

 网络连接方式

  

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

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

相关文章

遗失的源代码之回归之路的探索与实践

背景 最近比较突然被安排接手一个项目,该项目的情况如下 原生和RN结合的混合开发模式组件化开发,有很多基础组件以及业务组件但是在梳理项目依赖时发现了个别组件源码不全的情况,于是写了个cli用于对比两个版本产物文件,生成差异结果以便于快速进行源码找回恢复。 结果如下…

2、安全开发-Python-Socket编程端口探针域名爆破反弹Shell编码免杀

用途:个人学习笔记,欢迎指正! 目录 主要内容: 一、端口扫描(未开防火墙情况) 1、Python关键代码: 2、完整代码:多线程配合Queue进行全端口扫描 二、子域名扫描 三、客户端,服务端Socket编程通信cmd命…

SpringCloud-微服务项目架构

在当今软件开发领域,微服务架构正成为构建灵活、可伸缩、独立部署的应用的首选,微服务架构作为一种灵活而强大的设计模式,通过将系统拆分为独立的、自治的服务,使得应用更容易维护、扩展和升级。本文将探讨微服务项目架构的关键特…

数据在内存中的存储(上)

1. 整数在内存中的存储 整数的2进制表示方法有三种:即原码、反码和补码 三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位最 高位的一位是被当做符号位,剩余的都是数值位。 正…

流畅的Python(七)-函数装饰器和闭包

一、核心要义 主要解释函数装饰器的工作原理,包括最简单的注册装饰器和较复杂的参数化装饰器。同时,因为装饰器的实现依赖于闭包,因此会首先介绍闭包存在的原因和工作原理。 二、代码示例 1、变量作用域规则 #!/usr/bin/env python # -*-…

uniapp 高德地图显示

1. uniapp 高德地图显示 使用前需到**高德开放平台(https://lbs.amap.com/)**创建应用并申请Key   登录 高德开放平台,进入“控制台”,如果没有注册账号请先根据页面提示注册账号   打开 “应用管理” -> “我的应用”页面…

Python—数据可视化Seaborn大全:参数详解与实战案例全解析【第52篇—python:Seaborn大全】

文章目录 Seaborn库常用绘图详解与实战引言安装与导入一、散点图参数说明实战案例 二、直方图参数说明实战案例 三、线性关系图参数说明实战案例 四、热力图参数说明实战案例 五、分布图参数说明实战案例 六、箱线图参数说明实战案例 七、联合分布图参数说明实战案例 八、小提琴…

AJAX-常用请求方法和数据提交

常用请求方法 请求方法:对服务器资源,要执行的操作 axios请求配置 url:请求的URL网址 method:请求的方法,如果是GET可以省略;不用区分大小写 data:提交数据 axios({url:目标资源地址,method…

ES6-数组的解构赋值

一、数组的解构赋值的规律 - 只要等号两边的模式相同,左边的变量就会被赋予对应的值二、数组的解构赋值的例子讲解 1)简单的示例(完整的解构赋值) 示例 //基本的模式匹配 // a,b,c依次和1,2&#xff0c…

freeswitch对接FunASR实时语音听写

1、镜像启动 通过下述命令拉取并启动FunASR软件包的docker镜像: sudo docker pull \registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.7 mkdir -p ./funasr-runtime-resources/models sudo docker run -p 10096:10095 -i…

ctfshow web-77

开启环境: 先直接用伪协议获取 flag 位置。 c?><?php $anew DirectoryIterator("glob:///*"); foreach($a as $f) {echo($f->__toString(). );} exit(0); ?> 发现 flag36x.txt 文件。同时根目录下还有 readflag&#xff0c;估计需要调用 readflag 获…

java hutool工具类实现将数据下载到excel

通过hutool工具类&#xff0c;对于excel的操作变得非常简单&#xff0c;上篇介绍的是excel的上传&#xff0c;对excel的操作&#xff0c;核心代码只有一行。本篇的excel的下载&#xff0c;核心数据也不超过两行&#xff0c;简洁方便&#xff0c;特别适合当下的低代码操作。 下载…