首页 > 系统相关 >Linux 实验

Linux 实验

时间:2023-11-03 09:33:49浏览次数:49  
标签:文件 权限 sudo 实验 Linux txt root hello

知识补充

框架设计

Linux 操作可以分为本地操作和网络操作,操作对象主要是文件和目录,根据上述分类设计框架如下

  • 本地操作

    • 基础指令:系统一般内置

      • 目录

        • 目录切换:cd

        • 增删改查

          • mkdir
          • rmdir
        • 权限管理:chmod

          chmod 命令的具体用法如下:

          chmod [选项] 模式 文件
          

          其中,模式 是用于表示权限的数字或字符,文件 是要修改权限的目标文件。

          常用的 chmod 参数如下:

          • -r:递归地修改目录及其子目录中的文件权限。
          • -f:强制修改文件权限。
          • u:表示文件所有者(user)的权限。
          • g:表示文件所属组(group)的权限。
          • o:表示其他用户(others)的权限。
          • a:表示所有用户(all)的权限。
          • +:增加权限。
          • -:减少权限。
          • =:设置权限。
      • 文件

        • 增删改查

          • 创建空文件:touch

          • cat

            • 追加 >>
            • 覆盖 >
          • rm:一般用来删文件,也能删目录(但此时一般是为了删文件而删目录)

            # 强行递归删除目录及其子目录中所有文件
            rm -rf 目录名字
            
            # 名梗解析:删库跑路
            # / 代表Linux的系统根目录
            # 删除系统根目录的所有文件:
            rm -rf /
            
          • find:根据文件的属性找文件,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等

          • grep:利用正则表达式,针对文件内容进行字符串匹配,输出符合正则表达式的行

        • 移动

          • 实体
            • 复制:cp
            • 剪切:mv
        • 符号链接(快捷方式):ln

          ln -s 源文件路径 快捷方式路径
          
        • 权限管理

          • 权限查看:ls -ahl

            用于查看文件权限信息的 ls 的常用参数包括:

            • -l:以长格式显示文件信息,包括权限、所有者、所属组、大小、修改时间等详细信息。
            • -a:显示所有文件,包括以.开头的隐藏文件。
            • -h:以人类可读的格式显示文件大小。
            • -t:按照最后修改时间排序。
            • -r:以相反顺序显示文件列表。
            • -d:仅显示目录信息,而不显示目录下的文件。
            • -F:在文件名后面加上一个字符来表示文件的类型,例如斜杠表示目录。
            • -R:递归地显示目录及其子目录下的文件。
            • -s:显示文件和目录的大小。
            • -i:显示文件的 inode 号。
          • 权限修改:与目录同理

    • 常用工具:不一定集成在系统中,可能需要额外下载

      • vim

      • git

        当你使用 git push 命令时,你将本地分支的更新推送到远程仓库。下面是一个常见的使用示例:

        git push origin <branch-name>
        

        其中,origin 是远程仓库的名称,branch-name 是要推送的本地分支的名称。这个命令将会将本地分支的更新推送到与远程仓库中具有相同名称的分支上。

        如果你想将本地分支的更新推送到远程仓库的不同分支,可以使用以下命令:

        git push origin <local-branch-name>:<remote-branch-name>
        

        其中,local-branch-name 是本地分支的名称,remote-branch-name 是你想要将其推送到的远程分支的名称。这个命令将会将本地分支的更新推送到指定的远程分支。

        当你使用 git pull 命令时,你将从远程仓库获取更新并将其合并到当前分支。下面是一个常见的使用示例:

        git pull origin <branch-name>
        

        其中,origin 是远程仓库的名称,branch-name 是你想要从远程仓库获取并合并的分支的名称。这个命令将会获取远程分支的更新,并将其合并到当前分支。

        如果你想要在 git pull 过程中进行变基(rebase)操作,可以使用以下命令:

        git pull --rebase origin <branch-name>
        

        这个命令将会获取远程分支的更新,并在当前分支上进行变基操作,将本地的提交应用到远程分支的最新提交之上。

    • 性能监控和配置查询

      • 进程

        • ps: 查看所有进程信息

          • -A:显示所有进程。
          • -u:显示属于指定用户的进程。
          • -f:显示完整格式的进程信息,包括UID、PPID等。
          • -e:显示所有进程,与-A效果相同。
          • -l:显示长格式的进程信息,包括进程状态等。
          • -o:自定义输出格式,可以指定要显示的信息。
          • -p PID:显示指定PID的进程信息。
          • -C COMMAND:显示指定命令名称的进程信息。
          • --forest:以树状结构显示进程的层级关系。
          • --sort:按指定的列对进程进行排序。
          • ps -ef:用标准的格式显示进程

            参考文档:ps 参数含义

            ps -ef | tail -1
            #UID  PID    PPID   C STIME TTY  TIME     CMD
            #root 287926 255060 0 03:21 tty1 00:00:00 tail -1
            
            • UID:用户ID、但输出的是用户名
            • PID:进程的ID
            • PPID:父进程ID
            • C:进程占用CPU的百分比
            • STIME:进程启动到现在的时间
            • TTY:该进程在哪个终端上运行
              • 若与终端无关,则显示?
              • 若为pts/0等,则表示由网络连接主机进程。
            • CMD:命令的名称和参数
          • ps aux:用 BSD 的格式来显示进程

            ps aux | tail -1
            #USER PID    %CPU %MEM VSZ  RSS TTY  STAT START TIME COMMAND
            #root 286489  0.0  0.0 5216 816 tty1 S+   03:20 0:00 tail -1
            
            • USER:用户名
            • %CPU:进程占用的CPU百分比
            • %MEM:占用内存的百分比
            • VSZ:该进程使用的虚拟內存量(KB)
            • RSS:该进程占用的固定內存量(KB)(驻留中页的数量)
            • STAT:进程的状态
              • D:无法中断的休眠状态(通常 IO 的进程);
              • R:正在运行可中在队列中可过行的;
              • S:处于休眠状态;
              • T:停止或被追踪;
              • W:进入内存交换 (从内核2.6开始无效);
              • X:死掉的进程 (基本很少见);
              • Z:僵尸进程;
              • <:优先级高的进程
              • N:优先级较低的进程
              • L:有些页被锁进内存;
              • s:进程的领导者(在它之下有子进程);
              • l:多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
              • +:位于后台的进程组;
            • START:该进程被触发启动时间
            • TIME:该进程实际使用CPU运行的时间
            • COMMAND:命令的名称和参数
        • lsof -i:<port>: 查看指定端口号的信息

      • 网络

        • ip a:显示网络接口的信息,包括 IP 地址、网关和子网掩码。
        • ifconfig:显示网络接口的信息,和 ip 命令类似。
      • 系统

        • uname -a:显示所有的系统信息,包括内核版本、操作系统版本和硬件架构。
        • lsb_release -a:显示操作系统发行版的详细信息。
      • 硬件

        • top: 查看硬件资源占用情况
        • cat /etc/os-release:显示操作系统的发行版本信息。
        • cat /proc/cpuinfo:显示 CPU 的信息,包括型号、核心数量和频率。
        • cat /proc/meminfo:显示内存的信息,包括总容量、可用容量和使用率。
        • df -h:显示磁盘空间的使用情况。
        • free -h:显示内存和交换空间的使用情况。
        • lshw:显示硬件信息,包括 CPU、内存、磁盘、网络设备等。
    • 用户管理:用户本地操作权限管理

  • 网络操作

    • 远程连接:ssh

      ssh [email protected]
      
    • 文件上传 / 下载:scp

      scp /path/to/local/file username@remote_ip:/path/to/remote/directory
      #示例:scp Dockerfile [email protected]:/home/2024-graduation-design/openresty-test
      

      其中:

      • /path/to/local/file 是本地文件的路径。
      • username 是远程服务器的用户名。
      • remote_ip 是远程服务器的IP地址。
      • /path/to/remote/directory 是远程服务器上文件存放的目录路径。
    • 网络权限控制

      • 用户管理:root 远程访问权限管理

        要设置 root 账户的远程访问权限,您需要进行以下操作:

        1. 登录到服务器上的非 root 账户(例如普通用户账户)。

        2. 打开 SSH 配置文件 /etc/ssh/sshd_config,可以使用任何文本编辑器进行编辑,例如 vim:

          sudo vim /etc/ssh/sshd_config
          
        3. 在文件中找到 PermitRootLogin 这一行,将其值改为 yes:

          # vim 查找
          :/PermitRootLogin
          
          PermitRootLogin yes
          
        4. 保存并退出文件。

        5. 重启 SSH 服务使更改生效,可以使用以下命令重启:

          sudo systemctl restart sshd
          
      • 防火墙配置

        在CentOS下,可以使用以下命令开启或关闭防火墙:

        • 开启防火墙:

          sudo systemctl start firewalld
          
        • 关闭防火墙:

          sudo systemctl stop firewalld
          
        • 永久关闭防火墙:

          如果你希望防火墙在系统重启后仍然保持关闭状态,可以执行以下命令:

          sudo systemctl disable firewalld
          
        • 永久开启防火墙:

          如果你希望防火墙在系统重启后仍然保持开启状态,可以执行以下命令:

          sudo systemctl enable firewalld
          
      • 安全组设置

        要配置Linux安全组,可以通过iptablesfirewalld两种工具来实现。

        iptables是一个Linux内核提供的工具,用于配置IPv4的数据包过滤规则和网络地址转换(NAT)规则。

        • 开启端口号:

          sudo iptables -A INPUT -p <协议> --dport <端口号> -j ACCEPT
          sudo service iptables save
          sudo service iptables restart
          
        • 关闭端口号:

          sudo iptables -D INPUT -p <协议> --dport <端口号> -j ACCEPT
          sudo service iptables save
          sudo service iptables restart
          

        firewalld 是 RHEL/CentOS 7 中提供的新的防火墙服务,相比 iptables 更加简单易用。

        开启端口号:

        sudo firewall-cmd --zone=public --add-port=<端口号>/<协议> --permanent
        sudo firewall-cmd --reload
        

        关闭端口号:

        sudo firewall-cmd --zone=public --remove-port=<端口号>/<协议> --permanent
        sudo firewall-cmd --reload
        

实验

Linux 文件操作

简介
实验目的

通过本实验,你将学会在Linux系统中进行文件操作的基本命令的使用,包括创建和删除文件和文件夹、修改文件权限、复制和移动文件、查找文件等。

实验内容
  • 创建文件和文件夹
  • 删除文件和文件夹
  • 向文件中追加和覆盖内容
  • 查找文件
  • 修改文件权限
  • 复制和剪切文件
  • 创建符号链接(快捷方式)
实验过程
  1. 在指定路径下创建文件夹和文件
  2. 删除文件夹以及里面的文件
  3. 向文件中追加内容或覆盖式写入
  4. 查看当前目录和文件详细信息
  5. 修改文件权限
  6. 复制和剪切文件
  7. 创建符号链接(快捷方式)
  8. 修改快捷方式等效于修改原文件
示例代码
# 切换成 root 用户,避免权限问题
su root

# 跳转至 home 目录
cd /home

# 创建文件夹
mkdir linux-file
cd linux-file
mkdir tmp
cd tmp

# 创建文件
touch tmp.txt
mkdir inner
cd inner
mkdir inner.txt
cd ../..

# 删除文件夹
rmdir tmp
#rmdir: tmp: Directory not empty
rm -rf tmp

# 向文件中追加
cat >> hello.txt
hello
linux
^D # Control + D:保存并退出
cat hello.txt
#hello
#linux
cd ..

# 查看当前目录
pwd
# 查找当前目录下文件
find $(pwd) hello.txt | grep hello.txt
#/home/linux-file/hello.txt

cd linux-file
cat hello.txt
#hello
#linux
cat hello.txt | grep hello
#hello
cat hello.txt | grep linux
#linux

# 覆盖式写入
cat > hello.txt
hello linux
^D # Control + D:保存并退出
cat hello.txt
#hello linux
cat hello.txt | grep hello
#hello linux
cat hello.txt | grep linux
#hello linux

# 查看详细信息
ls -alh
#total 12K
#drwxr-xr-x 2 root root 4.0k Nov 1 10:58 .
#drwxr-xr-x 4 root root 4.0K Nov 1 10:56 ..
#-rw-r--r-- 1 root root   12 Now 1 11:02 hello.txt
# 修改文件权限
chmod 777 hello.txt
ls -alh
#total 12K
#druxr-xr-x 2 root root 4.0K Nov 1 10:58 .
#druxr-xr-x 4 root root 4.0K Nov 1 10:56 ..
#-ruxrwxrux 1 root root   12 Now 1 11:02 hello.txt

mkdir tmp
# 复制文件
cp hello.txt tmp/hello-cp.txt
cd tmp
ls
#hello-cp.txt

#	剪切文件
mv hello-cp.txt ../hello-cp.txt
ls
#
cd ..
ls
#hello-cp.txt hello.txt tmp

# 快捷方式
ln -s $(pwd)/hello.txt $(pwd)/hello-shortcut.txt
# 查看详细信息
ls -alh
# d 开头:路径
# - 开头:文件
# l 开头:符号链接,即快捷方式
#total 20K
#druxr-xr-x 3 root root 4.0K Nov 1 11:09 .
#druxr-xr-x 4 root root 4.0K Nov 1 10:56 ..
#-rwxr-xr-x 1 root root   12 Nov 1 11:06 hello-cp.txt
#lruxraxrux 1 root root   26 Nov 1 11:09 hello-shortcut.txt -> /home/linux-file/hello.txt
#-ruxrwxrux 1 root root   12 Nov 1 11:02 hello.txt
#druxr-xr-x 2 root root 4.0K Nov 1 11:08 tmp

# 修改快捷方式,就相当于修改文件本身
# 追加
cat >> hello-shortcut.txt
shortcut
^D # Control + D:保存并退出
cat hello.txt
#hello linux
#shortcut

vim 使用

简介

本实验主要介绍如何使用vim编辑器,包括基本的编辑命令、模式切换、保存退出、搜索替换等操作。

知识补充
  • 基本编辑命令 在vim编辑器中,你可以使用以下基本命令来进行文本编辑:
    • 非插入模式下的通用指令
      • 光标移动
        • 数字 ←↑↓→ or 数字 hjkl :左上下右移动 数字
        • gg:跳转到首行开头
        • G:跳转到末行开头
      • 内容操作
        • x: 删除光标下的字符
        • dw: 删除光标所在位置到下一个单词开始的字符
        • ddp: 将当前行与下一行互换位置
        • dd: 删除当前行
        • yy: 复制当前行
        • u: 撤销上一次的操作
    • 默认模式
      • 模式切换
        • 进入插入模式(-- INSERT --)
          • i: 进入插入模式,在光标前插入文本
          • a: 进入插入模式,在光标后插入文本
          • o: 进入插入模式,在当前行下方插入一个新行
          • O:进入插入模式,在当前行上方插入一个新行
        • 进入选择模式(-- VISUAL --):按 v 进入选择模式
        • :: 进入命令模式
        • 回到默认模式:ESC
    • 选择模式(-- VISUAL --)
      • y:复制选中的内容
      • p: 粘贴剪切板中的内容到当前行之后
    • 插入模式(-- INSERT --):正常编辑内容
    • 命令模式
      • 保存退出
        • :w: 保存文件
        • :q: 退出编辑器
        • :!q:强行退出
        • :wq: 保存文件并退出编辑器
      • 搜索替换 在 vim 编辑器中可以使用以下命令进行搜索和替换操作:
        • /:关键词: 在文件中搜索指定关键词
        • :%s/old/new/g: 查找并替换所有出现的 oldnew
实验目的

练习使用 vim 编辑器进行文本编辑的基本操作

实验内容
  1. 启动vim编辑器
  2. 基本编辑命令
  3. 高级编辑命令
  4. 模式切换
  5. 保存退出
  6. 搜索替换
实验过程
  1. 启动 vim 编辑器,创建 test.txt
  2. 进入插入模式,输入 hello vim
  3. 进入普通模式
  4. 进入选择模式,复制该行,粘贴该行,重复 3 次
  5. 进入命令模式,替换所有的 hello 为 hi
  6. 撤销替换操作
  7. 进入命令模式,保存并退出
示例代码
vim test.txt
# i
# hello vim
# ESC
# yy
# p
# p
# p
# :%s/Hello/Hi/g
# u
# :wq

在以上示例中,我们首先打开了一个名为 test.txt 的文件,输入 hello vim 后复制了三分,再使用搜索替换命令将所有的 hello 替换为 hi,再撤销替换操作,最后保存文件并退出编辑器

用户管理

简介

在Linux操作系统中,用户权限管理是非常重要的一项功能。通过用户权限管理,可以控制不同用户对文件和系统资源的访问权限,从而保护系统的安全性。在Linux中,每个用户都被分配了一个唯一的用户ID(UID),每个文件和目录都有所属用户和所属组。用户可以通过权限设置来确定其他用户对自己的文件和目录有哪些操作权限。

实验目的

本实验旨在帮助学习者理解Linux用户权限管理的概念和原理,掌握基本的用户权限设置和管理方法。

实验内容
  1. 用户的创建和管理方法
  2. 用户组的创建和管理方法
  3. 文件权限的查看和修改方法
实验过程
  1. 创建两个用户 user1、user2、user3
  2. 创建用户组 group1、group2
  3. 将 user1 加入 group1,user2 加入 group2
  4. 查看 group1 和 group2 的成员
  5. 创建文件 test.txt
  6. 将文件的读写执行权限改成只有 group1 和 user3 可用
  7. 切换到 user2,尝试读取 test.txt
  8. 切换到 user1,尝试读取 test.txt
  9. 删除用户组 group1、group2
  10. 删除用户 user1、user2、user3
示例代码
su root
cd /home
mkdir auth-test

# 创建用户
sudo adduser user1
# 输入密码
# 再次输入
# 基础信息配置,一直输入 enter,可以设置为 default
# 会默认为每一个用户在 /home 目录下创建一个专属的文件夹
sudo adduser user2
sudo adduser user3
# 查看用户信息
cat /etc/passwd | grep user
#user1:x:1001:1002:user1-fullname,,,:/home/user1:/bin/bash
#user2:x:1002:1003:,,,:/home/user2:/bin/bash
#users:x:1003:1004:,,,:/home/user3:/bin/bash

# 创建用户组
sudo groupadd group1
sudo groupadd group2
# 查看用户组信息
cat /etc/group | grep group
#group1:x: 1005:
#group2:x: 1006:

# 将用户加入用户组
sudo usermod -a -G group1 user1
sudo usermod -a -G group2 user2

# 查看用户组成员
getent group group1
getent group group2

# 创建文件
cat >> test.txt
test
^D # Control + D:保存并退出

# 修改文件权限
# 将test.txt的权限设置为:
# 所有者具有读、写、执行权限,与所有者同组的用户具有读、执行权限,其他用户没有任何权限。
sudo chmod 750 test.txt # 等效于 sudo chmod g=rx,o= test.txt
# 权限分配
sudo chown user3:group1 test.txt

# 切换用户并尝试读取文件
su user2
cat test.txt
#cat: test.txt: Permission denied
ls -alh
#-rwxr-x--- 1 User3 group1 O Nov 1 12:41 test.txt

# 切换用户并尝试读取文件
su user1
cat test.txt
#test

# 将用户权限修改为 group2
chgrp group2 test.txt
#chgrp: changing group of 'test.txt': Operation not permitted

# 切换至 root
su root
# 将用户权限修改为 group2
chgrp group2 test.txt

# 切换用户并尝试读取文件
su user2
cat test.txt
#test

# 切换至 root
su root
# 删除用户组
groupdel group1
groupdel group2
# 查看用户组信息
cat /etc/group | grep group
# 

# 删除用户
deluser user1
# 删除失败,需要先退出
su user1
exit
#强行删除:userdel -rf user1
deluser user2
# 删除失败,需要先退出
su user2
exit
deluser user3
# 删除成功,之前没有用到 user3
# 查看用户信息
cat /etc/passwd | grep user
#
进阶:通过 Shell 实现批处理
知识补充
  • seq 是用于生成连续数字的命令。它的参数依次为起始值、步长和结束值
    • 起始值:指定生成数字的起始值
    • 步长:指定生成数字之间的间隔
    • 结束值:指定生成数字的结束值
  • 字符串中设置变量值:$var
create.sh

批量创建

#!/bin/bash

# 添加30个用户
for i in $(seq 30)
do
    username="user$i"
    useradd "$username"
done
  
# 添加3个组
for i in $(seq 3)
do
  groupname="group$i"
  groupadd "'$groupname"
done

# 将用户添加到对应的组
for i in $(seq 10)
do
  echo "user$i"
  usermod -a -G group1 "user$i"
done

# seq 是用于生成连续数字的命令。它的参数依次为起始值、步长和结束值。
for i in $(seq 11 1 20)
do
  echo "user$i"
  usermod -a -G group2 "user$i"
done

for i in $(seq 21 1 30)
do
  echo "user$i"
  usermod -a -G group3 "user$i"
done

echo "add users and groups successfully"
sh create.sh
delete.sh

批量删除

for i in $(seq 3)
do
	groupdel "group$i"
done

for i in $(seq 30)
do
	userdel "user$i"
done
sh delete.sh

标签:文件,权限,sudo,实验,Linux,txt,root,hello
From: https://www.cnblogs.com/ba11ooner/p/17806884.html

相关文章

  • Linux中使用Docker容器安装mysql,无法直接使用mysql命令?
    1.问题如果你在Docker容器中运行MySQL,你不能在宿主主机上使用mysql--version命令来检查MySQL版本,因为MySQL客户端工具在宿主主机上未安装。2.解释2.1方法一要查看容器内MySQL的版本,你需要进入到容器中执行相应的命令。以下是一种方法:dockerexec-itmysqlmys......
  • 操作系统实验——进程管理的算法实现
    前言笔者在大学下属的事业单位上班,最近去帮着带下操作系统的实验课,这里随手水点参考代码,欢迎各位领导老师莅临指正实验目标编写一个简单的进程调度器实验内容进程控制块(PCB)的定义与管理进程调度算法的实现进程创建、销毁和切换给定一批进程对比3-4种调度算法的时间(自选算......
  • 【单片机】I/O口实验
    要求:拨动开关,让所亮小灯位置左移或者右移#include<STC8.H>#include<intrins.h>voiddelay(){ inti,j; for(i=0;i<1000;i++){ for(j=0;j<1000;j++); }}charmove_left(charvalue,intnumber){ value=_crol_(value,number); returnvalue; }charmov......
  • 0. 实验工具准备以及后续实验目的
    该系列课程需要使用到RISC-V(极简指令集)版本的四个工具:1.QEMU5.1+2.GDB8.3+3.GCC4.Binutils下面逐个介绍这四个工具。GCCGNUCompilerCollections,GNU系统中的编译器套件。GDBGNUDebugger,GNU系统中的调试器。QEMU开源的硬件虚拟化仿真器(Emulator)。是一个托管的虚......
  • 实验3 类与数组、指针
    实验任务1Point.hpp源码1#pragmaonce23#include<iostream>4usingstd::cout;5usingstd::endl;67classPoint{8public:9Point(intx0=0,inty0=0);10~Point()=default;1112intget_x()const;13intget_y()c......
  • Linux 网络配置以及软件包管理
    frompixiv网络连接配置的方法命令行进行配置nmclidevicestatus查看当前主机设备的活动情况我们来看点我们关系的吧!DEVICE中的下面的名字是什么鬼?这是设备的命名规则,对应网络连接来说,这个设备的名称就是网络接口的名称numcli是什么命令?一般的操作命令......
  • Linux下NAS和SAN推荐
    在Linux环境中,推荐10个NAS(NetworkAttachedStorage,网络附加存储)和10个SAN(StorageAreaNetwork,存储区域网络).NAS适合家庭用户,SAN适合企业用户。1.NASLinuxNAS解决方案有多种类型,找到适合您需求的解决方案才是真正的挑战。1.1 Amahi如果您正在寻找设置家庭NAS......
  • Linux 防火墙管理工具
    netfilter介绍防火墙是作用与内网和外网之间,根据定义的策略来过滤流量的软件或者硬件。在Linux内核中,自带了防火墙模块netfilter,通过netfilter可以是实现网络流量的过过滤,以及NAT、连接跟踪等功能。通过用户空间的iptables、firewalld等工具,可以实现相关规则的定义,将这些规则传......
  • 实验3
    #include<stdio.h>longlongfunc(intn);//函数声明intmain(){intn;longlongf;while(scanf("%d",&n)!=EOF){f=func(n);//函数调用printf("n=%d,f=%lld\n",n,f);}return0;}longlongfunc(int......
  • Windows系统使用MySql Workbench远程登陆Linux系统的MySql Server
     0.系统版本客户端:Windows10服务器:Ubuntu22.04(阿里ECS)数据库:Mysql8.0.351.操作步骤服务器端1.1在ubuntu22.04中安装Mysql1.1.1更新索引sudoaptupdate1.1.2安装sudoaptinstallmysql-server完成后查看版本mysql-V1.2修改Mysql......