Linux(一)

介绍

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

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

Linux(一)_第1张图片
吉祥物
    

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

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

Linux(一)_第2张图片

与Unix的关系


应用领域

个人桌面领域

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

服务器领域

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

嵌入式领域

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


目录结构

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

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

Linux(一)_第3张图片

Linux(一)_第4张图片

Linux(一)_第5张图片

序号 名称 介绍 备注
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、首先我们输入网址 欢迎访问网易开源镜像站 进到网易开源镜像站。

Linux(一)_第6张图片

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

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

Linux(一)_第7张图片

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

Linux(一)_第8张图片

4、选择“X86”就好。

Linux(一)_第9张图片

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


安装CentOS7.6

检查 BIOS 虚拟化支持

Linux(一)_第10张图片

新建虚拟机

Linux(一)_第11张图片

Linux(一)_第12张图片

Linux(一)_第13张图片

Linux(一)_第14张图片

 

Linux(一)_第15张图片

配置虚拟机的内存

Linux(一)_第16张图片

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

Linux(一)_第17张图片

配置网络

Linux(一)_第18张图片

Linux(一)_第19张图片

 

正式安装 Centos 系统

Linux(一)_第20张图片

Linux(一)_第21张图片

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

Linux(一)_第22张图片

Linux(一)_第23张图片

 

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

Linux(一)_第24张图片

软件选择(套餐):需要什么,安装好后也可以再安装。

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

Linux(一)_第25张图片

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

安装位置,进行分区操作

Linux(一)_第26张图片

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

Linux(一)_第27张图片

 

Linux(一)_第28张图片

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

Linux(一)_第29张图片

 

Linux(一)_第30张图片

 

Linux(一)_第31张图片

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

Linux(一)_第32张图片

Linux(一)_第33张图片

Linux(一)_第34张图片

Linux(一)_第35张图片

Linux(一)_第36张图片

Linux(一)_第37张图片

Linux(一)_第38张图片

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

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

Linux(一)_第39张图片

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

Linux(一)_第40张图片

点击开始安装就开始了

Linux(一)_第41张图片

Linux(一)_第42张图片

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

Linux(一)_第43张图片

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

Linux(一)_第44张图片

Linux(一)_第45张图片

 完成后面的设置

Linux(一)_第46张图片

Linux(一)_第47张图片

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

Linux(一)_第48张图片

Linux(一)_第49张图片

Linux(一)_第50张图片

Linux(一)_第51张图片

Linux(一)_第52张图片

Linux(一)_第53张图片

Linux(一)_第54张图片

连接网络,就可以上网了

Linux(一)_第55张图片


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启动流程分析

Linux(一)_第56张图片

第一步、硬件启动阶段

  这一步和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的硬盘

Linux(一)_第57张图片

Linux(一)_第58张图片Linux(一)_第59张图片

Linux(一)_第60张图片

Linux(一)_第61张图片

Linux(一)_第62张图片

点击完成,就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 文件, 标红的部分 是需要使用 指令来查看的

Linux(一)_第63张图片

在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.现在我们就可以创建一个新的虚拟机,然后将默认分配的硬盘 移除掉,指向我们刚刚创建的磁盘即可.

Linux(一)_第64张图片

Linux(一)_第65张图片

Linux(一)_第66张图片

Linux(一)_第67张图片

Linux(一)_第68张图片

Linux(一)_第69张图片

Linux(一)_第70张图片

Linux(一)_第71张图片

Linux(一)_第72张图片

Linux(一)_第73张图片

这时,很多指令都不能使用,比如 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 指令了

Linux(一)_第74张图片


其他

CUP内核的确认

开始-->任务管理器-->性能-->打开资源监视器-->2CPU,16个内核
    Linux(一)_第75张图片

常见的镜像站

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

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

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

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

    搜狐开源镜像站:Index of /

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

提示生成复杂密码

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

 网络连接方式

Linux(一)_第76张图片

  

你可能感兴趣的:(10_Linux,linux,运维,服务器)