ubuntu笔记

1.系统下载与虚拟机设置

系统下载https://cn.ubuntu.comhttps://releases.ubuntu.com

虚拟机设置:

       桥接模式

               在桥接模式下, 虚拟出来的操作系统就像是局域网中的一台独立的主机, 它可以访问网内任何一台机器主机网卡和虚拟网卡的IP地址处于同一个网段, 子网掩码、网关、DNS等参数都相同

       NAT模式

               使用NAT模式网络连接时, 会在主机上建立单独的专用网络, 虚拟机不能直接和其他计算机进行通信,只能通过宿主机作为中介来进行通信

 sudo apt update 和 sudo apt upgrade 区别:

           sudo apt update 用于更新系统中可用软件包的列表, 不会安装或删除任何软件包, 只是更新软件包列表

            sudo apt upgrade 用于升级系统中已经安装的软件包到最新版本

           因此, 通常先执行 sudo apt update 命令来获取最新的软件包列表, 再执行 sudo apt upgrade

2.安装 openssh 和远程连接 ubuntu

  Ubuntu:

           查看IP:

ip addr

Windows:

        检查 IP 是否连通         

ping 192.168.177.130

Ubuntu:

        安装 openssh-server

sudo apt install openssh-server

 Windows: 

       使用密码登录

现在可以使用密码登录SSH。在客户端机器上使用以下命令:

ssh username@server_ip

系统会提示输入密码。输入正确密码后即可登录

如果能Ping通,但无法连接,请重启SSH服务或做下面相关设置.

Ubuntu:

        配置SSH服务

安装完成后,SSH服务会自动启动。可以通过以下命令检查SSH服务状态:

sudo systemctl status ssh

如果服务未运行,可以手动启动:

sudo systemctl start ssh

        启用密码登录

编辑SSH配置文件以允许密码登录:

sudo nano /etc/ssh/sshd_config

找到并修改以下行:

PasswordAuthentication yes

保存文件并重启SSH服务:

sudo systemctl restart ssh

安全建议

虽然密码登录方便,但为提高安全性,建议:

  • 使用强密码
  • 限制登录尝试次数
  • 考虑使用密钥认证替代密码登录
  • 定期更新系统和SSH服务

通过以上步骤,您已成功在Linux环境中安装并配置了openssh-server,实现了使用密码进行SSH登录。请记住定期检查和更新系统,以确保安全性。

vscode远程连接设置

root 用户 ssh 远程登录 ubuntu

root 默认禁止ssh 远程

修改 /etc 目录中的  sshd_config 文件, 设置 PermitRootLogin yes

/etc 目录用于存储系统的配置文件

       su - root

      vim /etc/ssh/sshd_config

       vim 查询   / PermitRootLog 回车            

               #PermitRootLogin prohibit-password   

                查找到这行后在下面添加

               PermitRootLogin yes         

               systemctl status ssh 查看服务状态

               systemctl restart ssh 重启服务

       注    ssh.service 是 openssh 的服务名称

3.文件与目录操作

(LINUX 目录 等于  WINDOWS文件夹)

clear 清屏命令

clear

pwd 显示当前路径

ls 当前文件夹有那些文件与文件夹

        ls

        ls -l 按照长格式(long format)显示文件信息

mkdir 创建文件夹

      创建单个目录               mkdir web1

      创建多个目录               mkdir web2  test1

      创建多级目录               mkdir -p web3/test2

[p:parents 父级目录] -p表示创建指定的目录,并自动创建其中所需的所有缺少的父级目录

               

cd 切换目录

       cd web1

       cd ../

       cd /home/zzb/web2

       注:相对路径中     "./" 表示当前目录,     "../" 表示上一级目录

    绝对路径是相对于系统 根目录"/" 的完整路径. 如 /home/zzb/web1

    相对路径是以 当前目录"./" 为基准的路径, 是从当前目录到目标文件或目录的路径.

如 ./web1/test1.txt 表示当前目录下的 web 目录中的 test1.txt 文件

touch 创建空文件

       创建单个空文件     touch w.txt

       创建多个空文件     touch d.txt t.txt

        扩展:

                更新时间‌:

                touch -a file.txt        更新访问时间

                touch -m file.txt       更新修改时间

                touch -a -m file.txt   同时更新访问和修改时间‌

                设置时间‌戳:

                touch -t 202101011200 file.txt    访问和修改时间设置为2021年1月1日12点‌

echo 打印输出文本

 echo "A1"

向文件中添加一行文字 [ >> w.txt 将打印输出的文本 追加 到 w.txt 文件末尾, 若文件不存在, 则会创建该文件 ]

echo "A1" >> w.txt

       注:       >符号 是重定向输出

[ > 会覆盖已有的文件, >> 则会保留原来文件的内容, 在文件末尾追加内容 ]

cat 显示文件内容

cat w.txt

head 从文件开头显示指定数量的行

      head w.txt                      默认显示文件的前 10 行

      head -n 1 w.txt           显示文件的前 1 行

               

tail 从文件末尾显示指定数量的行

       tail w.txt                      默认显示文件的最后 10 行

       tail -n 1 w.txt           显示文件的最后 1 行

cp  复制

       将文件复制到另一个目录中

               cp w.txt  ../web1

               cp /home/zzb/w.txt /home/zzb/web2

       将文件复制到另一个目录中并重命名

               cp w.txt ../web2/newW2.txt

       将目录复制到另一个目录中

                [r:recursive 递归] -r表示复制整个目录树的内容

               cp -r /home/zzb/web2/ /home/zzn/web1/

   

mv 重命名或移动

       文件

            mv newW2.txt    w.txt                               重命名文件

            mv w.txt   /home/zzb/web1                       移动文件

            mv w.txt   ../text.txt                                   移动文件并重命名

       目录

           mv web1 newWeb                                    重命名目录

           mv newWeb /home/zzb/test                      移动目录

           mv newWeb /home/zzb/test/demo            移动目录并重命名

           

rm  删除文件或目录

       删除单个文件        rm d.txt

       删除多个文件        rm t.txt w.txt

       删除目录               rm -r web1

[r:recursive 递归] -r表示删除此文件夹和其子文件夹中的所有文件和目录

               

4.vim 编辑器

 [vim 是 vi 的增强版, 增加了许多功能和特性, 如语法着色、自动补全、多窗口编辑、插件支持等]

    vim test.txt  打开或新建文件使用 vim编辑器 打开 test.txt [若打开后异常退出(ctrl+z),可手动删除交换文件 rm -rf .test.txt.swp]i    进入编辑模式 [i:insert 插入]Esc  退出编辑模式,进入命令模式命令模式查找  /字符串 回车向下翻一页 ctrl+f [f:forward 向前]向上翻一页 ctrl+b [b:backward 向后]跳转到文件开头 [[跳转到文件结尾 ]]跳转到指定行 示例:跳转到第10行 10gg [gg 是 go to line 的缩写形式 "跳转到指定的行"]0 移动到行首$ 移动到行尾 [$:shift+4]u 撤消ctrl+r 重做:set nu 显示行号 [nu 是 number 的缩写形式]:%s/要被替换的文本/用来替换的文本/g%表示对整个文档进行操作 s表示替换操作 g表示全局替换,若不加g,则只会替换每行中第一个匹配到的文本退出:q      退出不保存 [q:quit 退出]:q!     强制退出不保存:w      保存文件 [w:write 写入]:wq     保存退出

5.grep 使用正则表达式来搜索文本

       在单个文件中查找指定的字符串

               grep A1  test.txt

               在 web.txt 文件中查找包含 A1 字符串的所有行并打印出来

       在单个文件中查找指定的字符串 [行号] -n 的全称是 "line-number" 表示输出匹配行的行号

               grep -n A1 test.txt

       在单个文件中查找指定的字符串 [忽略字母大小写] -i 的全称是 "ignore-case" 表示忽略字母的大小写

               grep -i a1 test.txt

       在单个文件中查找指定的字符串 [忽略字母大小写并输出匹配行的行号]

               grep -i -n a1 test.txt

               grep -in a1 test.txt

       在单个文件中查找指定的字符串 -A 全称 "after-context", 表示上下文

[-A1 表示显示匹配行后1行的内容]

               grep -n -A1 k test.txt

       在单个文件中查找指定的字符串 -B 全称 "before-context", 表示上下文

[-B1 表示显示匹配行前1行的内容]

               grep -n -B1 k test.txt

       在单个文件中查找指定的字符串 -C 全称 "context", 表示上下文

[-C1 表示显示匹配行上下各1行的内容]

               grep -n -C1 k test.txt

               grep -nC1 k test.txt

       在多个文件中查找指定的字符串

               grep A1 test.txt test2.txt

               在 test.txt test2.txt 文件中查找包含 A1 字符串的所有行并打印出来

       在多个文件中查找指定的字符串 [全词匹配] -w 的全称是 "word-regexp",

表示使用全词匹配, 即只有匹配到整个单词才算匹配成功

               grep -w A1 test.txt test2.txt

6.su 切换到 root 用户 

在 Ubuntu 系统中, root 用户没有设置默认密码

      sudo passwd root                 更改 root 用户的密码      

     su - root                                将当前用户临时切换到 root 用户 [su:switch user]

     exit                                        注销root 退出当前的 shell 环境或终端

       注

               su root

                       将当前用户临时切换到 root 用户, 但不会切换当前用户的环境变量和工作目录,

                       当前用户的环境并不完全适合作为 root 用户来运行, 因为可能会出现一些权限问题

               su - root

                       将当前用户临时切换到 root 用户, 同时切换当前用户的环境变量和工作目录

                       建议使用 su - root 命令来切换到 root 用户, 以确保当前用户的环境变量和工作目录

                       与 root 用户的环境变量和工作目录保持一致, 避免出现不必要的问题

               在 linux 系统中, 用户的系统设置通常是独立的, 每个用户都有自己的配置文件和环境变量

              当使用 su - root 命令临时切换到 root 用户后, 可以执行一些需要 root 权限的操作, 比如:修改系统设置

                       修改的设置只会影响当前 root 的用户环境, 不会影响其他用户的系统设置

                       当你退出 root 用户环境后, 这些操作将不会对其他用户或会话产生影响

7.adduser 添加、deluser 删除用户

 su - root 切换到root用户

       #当创建一个新用户账户时, 系统都会在 /home 目录下自动创建与该用户账户同名的文件夹

       adduser  user1         创建 用户 [ ls /home 查看该系统上所有已创建用户的主目录 ]

       deluser user1          删除luna用户 [ rm -r /home/user1 删除user1用户的主目录 ]

       deluser --remove-home user1         删除 user1 用户及其相关文件

                          --remove-home    删除用户的主目录和邮箱
                          --remove-all-files    删除用户拥有的所有文件
                          --backup        删除前将文件备份。
                          --backup-to <DIR>    备份的目标目录。
                                                   默认是当前目录。
                          --system        只有当该用户是系统用户时才删除

       passwd  user1  更改用户密码

删除时可能碰到的问题,用户可能有任务在运行

报错 userdel: user user1 is currently used by process 16577

 解决:

                      ps -f 显示当前终端会话中运行的进程的详细信息

                               UID          PID    PPID  C STIME TTY          TIME CMD

                               root           1       0  0 17:29 ?        00:00:03 /sbin/init splash

                               root           2       0  0 17:29 ?        00:00:00 [kthreadd]

                               ......

                               UID (User ID) 进程用户ID

                               PID (Process ID) 进程ID

                               PPID (Parent Process ID) 父进程ID

                               C(CPU) 进程占用 CPU 的百分比

                               STIME (Start Time) 进程启动的具体时间

                               TTY (Teletypewriter) 与进程交互的终端设备

                               TIME 启动进程花费的 CPU 时间

                               CMD 启动进程的命令

                       ps -ef 显示系统中所有正在运行的进程的详细信息

                       ps -ef | grep user1 显示系统中所有名称包含 user1 的进程的详细信息

                               ps[process status 进程状态]

                               -e[every 每个] 表示显示所有进程, 包括其他用户的进程

                               -f[full format 完整格式] 表示以完整格式显示进程信息

                               | 管道符号 将前一个命令的 "输出" 作为后一个命令的 "输入"

                               grep user1 会在 ps -ef 命令的 "输出" 中查找包含 luna 的进程信息

                       强制结束 id=16577的进程

                       kill -9 16577

                               -9 表示发送 SIGKILL[signal kill] 信号给进程 id 为 16577 的进程

                               SIGKILL 信号是一种强制停止进程的信号

8.查看用户的所属组信息

groups查看组信息

  groups 显示当前用户的所属组信息

                  zzb adm cdrom sudo dip plugdev users lpadmin

                   zzb : 组名为 zzb 的用户组 [zzb 用户隶属于和自己同名用户组]

                   adm(Administrator) : 管理员用户组, 具有系统管理权限

                   cdrom(CD-ROM) : 光盘用户组, 具有读取光盘的权限

                   sudo(Super User Do) : 超级用户组, 具有执行系统管理任务的权限

                   dip(Device Interface) : 接口用户组, 具有配置网络接口的权限

                   plugdev(Plug-in Device) : 设备插件用户组, 具有管理设备插件(如声卡、显卡等)的权限

                   LXD(LXC on steroids)是LXD容器管理工具的用户组

‌                               

                   users(Users) : 普通用户组, 不具有系统管理权限

                   lpadmin(Local Printer Administration) : 打印机管理用户组, 具有管理打印机的权限

LXD是基于Linux容器的技术,它提供了以下主要功能:

  • 容器创建和管理‌:用户可以轻松创建、启动、停止和删除容器。
  • 网络配置‌:LXD支持网络配置,允许容器访问外部网络或与其他容器通信。
  • 存储管理‌:LXD提供了灵活的存储解决方案,用户可以定义存储池和卷,用于容器的数据存储。
  • 安全性和隔离‌:LXD确保容器之间的隔离,每个容器运行在自己的环境中,互不干扰。

               groups zzb [查看 zzb 用户的所属组信息]

                       zzb : zzb adm cdrom sudo dip plugdev lxd

                               zzb 当前登录用户的用户名是 zzb

                               zzb 组名为 zzb 的用户组

               groups root

                       root : root

                 root 用户隶属于 root 组, root 组被赋予了最高的权限, 允许其成员访问系统中的所有资源

       查看所有用户组的信息

               cat /etc/group

               /etc/group 文件的每行格式是 group_name:x:GID:group members

                       group_name 表示用户组的名称

                       x 表示密码占位符, 密码是存储在/etc/shadow文件中

                       GID 表示组ID(GID), 用于唯一标识用户组

                       group members 表示该用户组的成员, 每个成员用逗号分隔        

       列出包含 zzb 字符串的用户组的信息

               grep zzb /etc/group

               adm:x:4:syslog,zzb [表示名为adm的组, 组密码是x, 组ID是4, 组成员包括syslog和zzb]

               cdrom:x:24:zzb [表示名为cdrom的组, 组密码是x, 组ID是24, 组成员包括zzb]

               sudo:x:27:zzb [表示名为sudo的组, 组密码是x, 组ID是27, 组成员包括zzb]

               dip:x:30:zzb [表示名为dip的组, 组密码是x, 组ID是30, 组成员包括zzb]

               plugdev:x:46:zzb [表示名为plugdev的组, 组密码是x, 组ID是46, 组成员包括zzb]

               lxd:x:118:zzb [表示名为lpadmin的组, 组密码是x, 组ID是101, 组成员包括zzb]

               zzb:x:1000: [表示名为david的组, 组密码是x, 组ID是1000, 没有其他组成员]

       查看用户 zzb 的用户ID和组ID

               id zzb

               uid=1000(zzb) gid=1000(zzb)

               groups=1000(zzb),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),101(lxd)

groupadd 创建组

      创建测试用户

               su - root 切换到root用户

               adduser user2 创建user2用户

       创建一个名为 test 的用户组

               groupadd test

               注

                       grep test /etc/group

                               test:x:1003:

       将 user1 用户添加到 test 用户组

               查看用户 user1 所属组信息

               groups user1

                      user1 : user1 users

               将 user1 用户添加到 test 用户组(保留原来的组,添加到新组)

               usermod -a -G test user1

               注 [-a:append -G:group]

                       -a 表示以追加方式(append) 将用户 user1 添加到 test 组中, 不影响其原有所属组

                          若省略了 -a, 用户 user1 将从其当前组中删除,并被添加到名为 test 的新组中

                       -G test 表示将用户添加到名为 test 的组中

               查看用户 user1 所属的所有用户组

               groups user1

                      user1 : user1 users test

               注

                       grep test /etc/group

                              test:x:1003:user1

       将用户 user1 从 test 用户组中删除

               deluser user1 test

     

 groupdel 删除 test 的用户组

               groupdel test

               groupdel user1 报错 [不能移除用户 luna 的主组]

9.文件和目录权限

目录权限

       示例

               mkdir demo                创建目录

               ls -l                               按照长格式(long format)显示文件信息

               drwxrwxr-x 2 zzb zzb 4096 Dec 21 15:24 demo

               d 表示目录(directory)

               rwxrwxr-x 是目录的权限部分, 其中:

               r(read) 表示读取权限, 允许用户列出目录中的文件列表

               w(write) 表示写入权限, 允许用户对目录创建、删除、修改等

               x(execute) 表示执行权限, 允许用户进入目录并访问其中的文件和子目录

       

               rwx 是目录所有者(owner)的权限(前面一组), 表示具有读取、写入和执行权限

               rwx 是目录所属组(group)的权限(后面一组), 表示具有读取、写入和执行权限

               r-x 是其他用户(others)的权限, 表示只具有读取和执行权限

              2 是文件的硬链接数, 表示该目录有2个硬链接

                       除了根目录(/)外, 每个目录至少包含2个目录项 . 和 ..

                       .(点) 表示当前目录

                       ..(点点) 表示上级目录

               zzb 是目录的所有者, 即创建该目录的用户

               zzb 是目录的所属组, 即该目录所属的用户组

               4096 是文件的大小, 表示该目录占用的磁盘空间为 4096 字节

               11 月 30 15:15 是该目录最后一次被修改的日期和时间

               demo 创建的目录

                       创建软链接(符号链接)  (等于 创建的快捷方式)

                       ln -s /home/zzb/test.txt     /home/zzb/zzbLink.txt                

                       

                       创建硬链接(相当于创建一个变量指向同一个内容地址)

                       ln /home/zzb/test2.txt /home/zzb/zzbLink2.txt

                       

                       实现方式:

                               硬链接是指向文件索引节点的引用, 类似原始文件的别名,

                               硬链接与原始文件共享同一个索引节点,在系统中可以被视为同一个文件.

                               软链接是指向另一个文件或目录的路径, 类似Windows的快捷方式,

                               软链接有自己的索引节点

                       删除原始文件时:

                               硬链接仍然存在, 因为它指向的是文件的索引节点

                               软链接则会失效, 因为它指向的文件已不存在

       文件权限

       示例

               touch test.txt            创建空文件

               ls -l                           按照长格式(long format)显示文件信息

               -rw-rw-r-- 1 david david    0 11月 30 14:58 test.txt

               - 表示普通文件

               rw-rw-r-- 是文件的权限部分, 其中:

               r(read) 表示读取权限, 允许用户查看该文件

               w(write) 表示写入权限, 允许用户对文件创建、删除、修改等

               x(execute) 表示执行权限, 允许用户运行该文件

               rw- 是文件所有者(owner)的权限(前面一组), 表示具有读取和写入权限

               rw- 是文件所属组(group)的权限(后面一组), 表示具有读取和写入权限

               r-- 是其他用户(others)的权限, 表示只具有读取权限

               1 是文件的硬链接数, 表示该文件有一个硬链接

                       在默认情况下, 创建一个文件时, 系统通常会创建一个硬链接

               zzb 是文件的所有者, 即创建该文件的用户

               zzb 是文件的所属组, 即该文件所属的用户组

               94 是文件的大小, 表示该文件目前数据大小

               11 月 30 14:58 是该文件最后一次被修改的日期和时间

               test.txt 创建的文件

10.chmod 设置文件或目录的权限

chmod(change mode 表示更改 change 文件模式 mode) 设置文件或目录的权限

               符号模式

                       u(user)所有者, g(group)所属组, o(others)其他用户

                       r(read)读取, w(write)写入, x(execute)执行

                       chmod u=r test.txt 设置 所有者u 具有 读取r 权限

                       chmod g=r test.txt 设置 所属组g 具有 读取r 权限

                       chmod o= test.txt  清空 其他用户o 权限

                       chmod a= test.txt 清空 所有用户a 权限 [a(all)所有用户]

                       设置 所有者u和所属组g 具有 读取r和写入w 权限, 其他用户o 具有读取权限

                       chmod u=rw,g=rw,o=r test.txt

                       移除 所有者u和所属组g 的 读取r和写入w 权限

                       chmod ug-rw test.txt

                       为 所有者u 添加 读取r 权限

                       chmod u+r test.txt

               数字模式

                       r=4, w=2, x=1

                       7(4+2+1)  可读r、可写w、可执行x

                       6(4+2)    可读r、可写w

                       5(4+1)    可读r、可执行x

                       4         只读r

                       3(2+1)    可写w、可执行x

                       2         只写w

                       1         只执行x

                       0         没有任何权限

                       设置 所有用户 具有 读取r、写入w、执行x 权限

                       chmod 777 test.txt

                       设置 所有者 具有 读取r和写入w 权限, 所属组g和其他用户o 具有 读取r 权限

                       chmod 644 test.txt

                       递归地将目录demo及其子目录下的所有文件的权限设置为777 [-R:recursive 递归]

                       sudo chmod -R 777 demo

11.chown 和 chgrp更改文件或目录的所有者和所属组

 

su - root 切换到 root 用户

       chown(change owner) 更改文件或目录的所有者

               将 test.txt 文件的所有者更改为 zzb 用户

               chown zzb test.txt

               将 web 目录的所有者更改为 zzb 用户

               chown zzb web

               将 web 目录及其包含的所有文件和子目录的所有者更改为 zzb 用户

               [-R:recursive 递归]

               chown -R zzb web

       chgrp(change group) 更改文件或目录的所属组        

               将 test.txt 文件的所属组更改为 zzb 组

               chgrp zzb test.txt

               将 web 目录的所属组更改为 zzb 组

               chgrp zzb web

       注

               将目录 web 的所有者更改为 zzb 用户,所属组更改为 root 组

               chown zzb:root web

12.日期和时间

      date 显示当前日期、时间和时区

               date

                     Sun Dec 22 03:40:07 AM UTC 2024

                       

UTC(协调世界时)

UTC,即协调世界时,是基于原子钟的时间标准,被广泛用作全球事件时间的一致性参考。UTC不包含任何时区信息,因此它是一个“纯”时间标准。

CST(中国标准时间)

CST,即中国标准时间,是UTC+8时区的别名,适用于中国大陆、香港和澳门。CST时间比UTC时间快8小时

       +%Y-%m-%d 日期格式化

               年(Year)、月(Month)、日(Day) YYYY-MM-DD

                       date +%Y-%m-%d

                               2024-12-22

            简化

                     date +%F

                             2024-12-22

           +%H:%M:%S 时间格式化

            时(Hour)、分(Minute)、秒(Second) HH:MM:SS

                     date +%H:%M:%S

                               03:41:17

            简化

                    date +%T

                              03:41:17

             年、月、日、时、分、秒 YYYY-MM-DD HH:MM:SS

                    date +"%Y-%m-%d %H:%M:%S"

                               2024-12-22 03:42:21

             简化

                   date +"%F %T"

                               2024-12-22 03:42:21

       注

               错误示范

                       echo date +"%F %T" >> log.txt

                       echo 'date +"%F %T"' >> log2.txt

              正确示范

                       echo `date +"%F %T"` >> log3.txt    不是单引号

                       echo $(date +"%F %T") >> log4.txt

                       反引号` 和 $() 都可以用来执行命令或表达式的值                       

$()不仅可以引用命令的输出, 还可以引用变量的值、命令的参数等

将时间从UTC设置为CST:

sudo timedatectl set-timezone Asia/Shanghai

查看当前时区设置‌:

timedatectl

13.前台和后台运行 shell 脚本

 shell 是一个命令行解释器, 负责接收和解析用户通过终端输入的命令每当用户在终端中输入一条命令,shell 会立即将其 "翻译" 成操作系统可以理解的指令

 终端 是一个提供命令输入和输出环境的程序,可以把它看作是一个窗口,让用户可以看到系统的反馈而 shell 则是这个窗口中的工具,帮助用户向操作系统发出指令

demo.sh

#!/bin/bashwhile true
doecho $(date +"%F %T") >> time.txtsleep 3
done

       #!/bin/bash 是脚本的头文件声明,指定使用 bash 解释器来执行后续的脚本代码

       前台运行 Shell 脚本

               1.通过 bash 解释器来执行

                       bash demo.sh

                       注    显示文件的最后 3 行   tail -n 3 time.txt

              2.直接运行脚本

                       ./demo.sh

                       注  添加执行权限   chmod u+x demo.sh

       后台运行 Shell 脚本

               1. &符号 表示在后台运行, 关闭终端后, 会结束进程

                       bash demo.sh &

                       注   ps -f 显示当前终端会话中运行的进程的详细信息

                               ps[process status 进程状态]

                               -f[full format 完整格式] 表示以完整格式显示进程信息

                       #终止一个正在运行的进程

                       kill 79426

               2. nohup(no hang up 不挂断) 关闭终端后, 进程仍然能够在后台运行

                       nohup bash demo.sh &

              注     ps -ef 显示系统中所有正在运行的进程的详细信息

                       ps -ef | grep demo.sh 显示系统中所有包含 demo.sh 的进程的详细信息

                               -e[every 每个] 表示显示所有进程, 包括其他用户的进程

                               | 管道符号 将前一个命令的 "输出" 作为后一个命令的 "输入"

                               grep demo.sh 会在ps -ef命令的 "输出" 中查找包含demo.sh的进程信息

14.ps 查看进程信息

 进程是指在计算机中正在运行的程序

      ps (Process Status) 进程状态 显示当前终端会话中运行的进程信息

      ps -f 显示当前终端会话中运行的进程的详细信息

               UID (User ID) 进程用户ID

               PID (Process ID) 进程ID

               PPID (Parent Process ID) 父进程ID

               C(CPU) 进程占用 CPU 的百分比

               STIME (Start Time) 进程启动的具体时间

               TTY (Teletypewriter) 与进程交互的终端设备

               TIME 启动进程花费的 CPU 时间

               CMD 启动进程的命令

       ps -ef 显示系统中所有正在运行的进程的详细信息, 包括系统进程和用户进程

       ps -ef | grep demo.sh 显示系统中所有名称包含 demo.sh 的进程的详细信息

               ps[process status 进程状态]

               -e[every 每个] 表示显示所有进程, 包括其他用户的进程

               -f[full format 完整格式] 表示以完整格式显示进程信息

               | 管道符号 将前一个命令的 "输出" 作为后一个命令的 "输入"

               grep demo.sh 会在 ps -ef 命令的 "输出" 中查找包含 demo.sh 的进程信息

       ps -u 显示当前终端会话中 当前用户 正在运行的进程信息

               USER 用户名

               PID (Process ID) 进程ID

               CPU CPU使用率

               MEM (Memory) 内存使用率

               VSZ (Virtual Size) 虚拟内存大小(以KB为单位)

               RSS (Resident Set Size) 常驻内存大小(以KB为单位)

               TTY (Teletypewriter) 与进程交互的终端设备

               STAT (State) 进程状态

               START 进程启动时间

               TIME 启动进程花费的 CPU 时间

               COMMAND 启动进程的命令

       ps -x 显示与终端相关的进程

       ps -ux 显示终端会话中 当前用户 正在运行的进程信息

       注     强制结束 id=80124 的进程

               kill -9 80124

                       -9 表示发送 SIGKILL[signal kill] 信号给进程 id 为 80124 的进程

                       SIGKILL 信号是一种强制停止进程的信号

15.查看cpu、内存等系统信息

      top 查看系统的实时信息,包括CPU占用率、内存使用、进程列表等

       top - 16:28:23 up 13:25,  4 users,  load average: 0.00, 0.00, 0.00

               (16:28:23) 当前时间为16:28:23

               (up 13:25) 系统运行了的时间

               (4 user) 4个登录用户

               (load average: 0.00,0.00,0.00) 系统的负载平均值为0.00,0.00,0.00

                       系统在过去的1分钟(0.00)、5分钟(0.00,)、15分钟内(0.00)的平均负载

       Tasks: 231 total,   1 running, 230 sleeping,   0 stopped,   0 zombie

               (231 total) 总共有231个进程

               (1 running) 1个正在运行的进程数

               (230 sleeping) 230个正在休眠的进程

               (0 stopped) 0个停止的进程

               (0 zombie) 0个僵尸进程

                       僵尸进程 是指在进程已经结束运行但其相关资源

                       (如内存空间等)尚未被释放的情况下,该进程的状态,

                       是一个已经死亡但仍然存在于系统中的进程

      %Cpu(s):  0.2 us,  0.5 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 

               (0.2 us)[user] 用户空间占用CPU的百分比为0.2%

                       0.2 us 表示系统上有一些用户级任务正在运行,但它们对CPU的占用相对较低

               (0.5 sy)[system] 系统空间占用CPU的百分比为0.5%

               (0.0 ni)[nice] 调整过优先级的用户进程占用 CPU 的百分比为0.0%

                       nice 优先级调整值,用于调整进程的优先级

                       当一个进程被赋予较高的nice值时,它将以较低的优先级运行,

                       从而使其他进程能够获得更多的 CPU 资源

               (99.3 id)[idle] 空闲时间占用CPU的百分比为99.3%

                       99.3 id 表示 CPU 大部分时间处于空闲状态,说明系统负载较低

               (0.0 wa)[wait] 等待I/O占用CPU的百分比为0.0%

                       I/O[Input/Output]操作 是指系统中的输入和输出操作,

                       常见的 I/O 操作有:读取和写入文件、键盘输入、打印机输出等

                       0.0 wa 表示 CPU 没有花费时间等待 I/O 操作,

                       说明着当前系统的 I/O 操作比较高效,没有对CPU造成明显的阻塞,

                       若wa的值较高,则说明 I/O 操作存在瓶颈

               (0.0 hi)[hardware interrupt] 硬中断占用CPU的百分比为0.0%

                       硬中断是由硬件设备(如键盘、鼠标等)发出的信号,

                       会打断 CPU 正在执行的任务,使其跳转到中断处进行处理

                       0.0 hi 表示没有硬中断发生

               (0.0 si)[software interrupt] 软中断占用CPU的百分比为0.0%

                       软中断是由软件程序发出的信号,会打断CPU正在执行的任务,

                       使其跳转到中断处进行处理

                       0.0 si 表示没有软中断发生

               (0.0 st)[steal] 虚拟化占用CPU的百分比为0.0%

                       0.0 st 表示没有虚拟机从物理机中窃取CPU时间,

                       即虚拟化对 CPU 的占用为 0.0%

       MiB Mem :   3868.1 total,   1559.8 free,    755.6 used,   1864.6 buff/cache   

               MiB Mem[Megabytes of Memory] 内存的兆字节数

               (3868.1 total) 总内存大小为3868.1 MiB

               (1559.8 free) 空闲内存大小为1559.8 MiB

               (755.6 used) 已使用的内存大小为755.6 MiB

               (1864.6 buff/cache) 缓冲和缓存区内存大小为1864.6 MiB

      MiB Swap:   2998.0 total,   2998.0 free,      0.0 used.   3116.7 avail Mem 

               MiB Swap[Megabytes of Swap] 交换空间兆字节数

               交换空间(Swap Space) 是系统中的虚拟内存技术,用于在物理内存不足时,

               将部分内存数据暂时存储到磁盘上

               (2998.0 total) 总交换空间大小为2998.0 MiB

               (2998.0 free) 空闲交换空间大小为2998.0 MiB

               (0.0 used) 已使用的交换空间大小为0.0 MiB

               (3116.7 avail Mem) 可用的物理内存大小为3116.7 MiB

               2998.0 free 表示交换空间完全空闲,没有被使用,

               说明系统目前没有内存压力,不需要将内存数据交换到磁盘上

               USER 用户名

               PR(Priority) 优先级

               NI(Nice) 优先级调整值,用于调整进程的优先级

               VIRT(Virtual Memory) 虚拟内存大小

               RES(Resident Memory) 物理内存大小

               SHR(Shared Memory) 共享内存大小

               %CPU(CPU Usage) CPU使用率

               %MEM(Memory Usage) 内存使用率

               TIME+(Time Elapsed) 进程使用的CPU时间

               COMMAND 命令

       注    在 top 命令的交互模式下,

               按键盘上 1键, 切换CPU显示模式, 显示每个CPU的使用情况

               按键盘上 大写字母M, 按照物理内存(RES)使用率对进程进行排序

               按键盘上 大写字母P, 按照CPU占用率对进程进行排序

                       用来查看CPU占用率最高的进程

       top -p 1036 查看PID为1036的进程的实时信息

               p(process) 进程

       free -m 以兆为单位显示内存的使用情况

                -m 兆字节(MB)

显示内存与交换内存使用情况

               total 总内存大小

               used 已使用的内存大小

               free 空闲内存大小

               shared 共享内存大小

               buff/cache 缓冲和缓存区内存大小

               available 可用的内存大小 = 空闲内存 + 缓冲和缓存区内存

     注       虽然空闲内存为 1559 MB, 缓冲和缓存区内存为 1865 MB,

               但实际可用的内存大小只有 3112 MB,

               这是因为还有其他一些内存区域被占用, 不能立即用于新的进程

16.压缩和解压

  nginx  https://nginx.org/en/download.html  下载稳定版本     nginx-1.26.2.tar.gz

       ubuntu

               /usr 目录主要用来存储系统级别的二进制文件、库和文档可以被视为系统级目录

               /usr/local 目录通常用来存储用户手动安装的软件

       windows

               C:\Windows 主要存储系统文件

               C:\Program Files 目录通常用来存储用户手动安装的软件

      ls /usr/local/

     

     注      /usr/local/bin

                       bin(binary) 二进制文件

                       存储可执行文件,即可以在命令行下直接运行的应用程序

               /usr/local/etc

                       etc(etcetera) 表示"等等"

                       存储本地安装的软件的配置文件

               /usr/local/games

                       存储游戏相关的文件

               /usr/local/include

                       存储C语言和其他编程语言的头文件(header files),

                       这些文件包含了函数声明和宏定义等信息,用于编译应用程序

               /usr/local/lib

                       lib(library) 库

                       存储库文件,这些文件包含了常用的功能函数,可以被其他程序调用

               /usr/local/man

                       man(manual pages)

                       存储手册页,提供关于命令、库函数、配置文件等的详细说明

               /usr/local/sbin

                       sbin(system binary) 系统二进制文件

                       存储系统级别的可执行文件,通常是系统管理员才能运行的工具或服务

               /usr/local/share

                       存储共享文件,如字体、图标、文档等

               /usr/local/src

                       src(source) 源代码

                       存储软件的源代码,用于编译和修改软件

       tar

               解压

               tar -xf nginx-1.24.0.tar.gz

               tar -xvf nginx-1.24.0.tar.gz

               tar -xvzf nginx-1.24.0.tar.gz

               tar -xvzf nginx-1.24.0.tar.gz  -C /usr/local/src

              压缩

               tar -cvzf nginx.tar.gz nginx-1.24.0

             注      -x(extract) 表示解压tar文件

                       -c(create) 表示创建一个新的tar文件

                       -v(verbose) 表示在解压过程中显示详细信息

                       -z 表示使用gzip解压缩,使用gzip会减少压缩文件体积

                          以.gz结尾文件,会自动启用gzip

                       -f(file) 指定要解压的tar文件的路径

                                    告诉tar命令后面要跟一个文件名

                       -C(Change Directory) 解压到指定目录

       zip:  需要安装,系统没自带

                sudo apt install unzip

                sudo apt install zip

               解压  unzip images.zip

               压缩   zip -r img.zip images

         注  -r(recursive) 递归地压缩指定目录及其所有子目录和文件

                不能对文件直接zip,需要放到目录中,对目录zip

17.安装和配置 nginx

创建工作目录

               mkdir /usr/local/workspace

       切换到 nginx 目录

               cd /usr/local/src/nginx-1.26.2

       配置

       ./configure --prefix=/usr/local/workspace/nginx

               报错1

               ./configure: error:

               C compiler cc is not found

               安装 gcc(GNU Compiler Collection)

               apt install gcc

                       说明

                       gcc 由GNU开发的编译器,可以将源代码编译成可执行文件

                       apt 会分析依赖关系,并自动安装所有必要的软件包

                       gcc --version 查看 gcc 的版本

                       which gcc 查找系统中 gcc 可执行文件的路径

               报错2

               ./configure: error:

               the HTTP rewrite module requires the PCRE library

               安装 PCRE(Perl Compatible Regular Expressions)

               apt install libpcre3 libpcre3-dev

                       说明

                       PCRE 是一个用于正则表达式操作的库

               报错3 没碰到

               ./configure: error:

               the HTTP gzip module requires the zlib library

               安装 zlib

               apt install zlib1g-dev

                       说明

                       zlib 是用于数据压缩的库

配置完成.

       编译和安装

               make && make install

               报错

               找不到命令 "make"

               安装

               apt install make

编译和安装完成

     

 查看 nginx 版本

               /usr/local/workspace/nginx/sbin/nginx -v

       软连接

       ln -s /usr/local/workspace/nginx/sbin/nginx /usr/bin/nginx

               说明

               /usr/bin 目录用于存储系统提供的命令行工具,

               用户可以通过在终端中输入该命令的名称来执行

       查看 nginx 版本

               nginx -v

       启动 nginx

nginx

      停止 nginx

nginx -s stop

               说明   -s(signal)发送信号     重新加载 nginx 配置文件

nginx -s reload

               说明   平滑地重新加载配置,而不会中断正在进行的请求

       ubuntu

               http://127.0.0.1

       windows

               http://192.168.177.130

       查看 nginx 进程

 ps -ef | grep nginx

      停止 nginx 服务

               kill 88485

       注  nginx 目录说明

client_body_temp        用于存储客户端发送的请求体(body)的临时文件

       如:上传的文件

conf                             包含 nginx 的配置文件

fastcgi_temp               FastCGI进程的临时存储目录

html                             通常用于存储静态文件,如:html、css、图像等

 logs                            用于存储 nginx 的日志文件

      access.log 记录所有访问请求的日志

      error.log 记录错误信息的日志

proxy_temp            代理服务器的临时存储目录

sbin                        包含 nginx 服务器的可执行文件

    如:启动、停止和重新加载

scgi_temp             SCGI进程的临时存储目录

uwsgi_temp         uWSGI进程的临时存储目录

18.使用 systemctl 命令控制 nginx 服务

  systemd        用于管理linux系统的初始化系统和服务管理器

 systemctl        是systemd的命令行工具,可以用来启动、停止服务等

       使用 systemctl 命令管理 nginx 服务

vim /usr/lib/systemd/system/nginx.service

  nginx.service:

[Unit]
Description=Nginx Web Server
After=network.target[Service]
Type=forking
#ExecStart=/usr/local/workspace/nginx/sbin/nginx
ExecStart=/usr/bin/nginx
ExecReload=/usr/bin/nginx -s reload
ExecStop=/usr/bin/nginx -s stop[Install]
WantedBy=multi-user.target

       注

       [Unit]

               Description=Nginx Web Server                  定义服务的描述信息

               After=network.target                                   指定在 网络服务 启动之后启动

       [Service]

               Type=forking                      设置了服务的类型为 forking,表示以子进程的方式运行服务

               ExecStart=/usr/bin/nginx    启动 nginx

               ExecReload=/usr/bin/nginx -s reload         重新加载 nginx 的配置

               ExecStop=/usr/bin/nginx -s stop                停止 nginx

       [Install]

               WantedBy=multi-user.target                     该服务在系统进入多用户模式时自动启动,

                       在多用户模式下,可以有多个用户登录并使用该服务

      systemctl 命令

               查看服务状态 systemctl status nginx

               启动 systemctl start nginx

               停止 systemctl stop nginx

               重新加载 systemctl reload nginx

               检查 nginx 服务是否已设置为开机自动启动             

systemctl is-enabled nginx

               设置 nginx 服务开机自动启动

                       systemctl enable nginx

               禁止 nginx 服务开机自动启动

                       systemctl disable nginx

19.安装和配置 mysql 允许远程连接

Ubuntu和MySQL默认版本对照

以下是一个以表格形式列出了不同Ubuntu版本和它们通常默认安装的MySQL版本:

Ubuntu 版本默认 MySQL 版本
Ubuntu 22.04 LTSMySQL 8.0
Ubuntu 20.04 LTSMySQL 8.0
Ubuntu 18.04 LTSMySQL 5.7
Ubuntu 16.04 LTSMySQL 5.7

在线安装MySQL


步骤1:更新软件包列表

在进行任何软件安装之前,请确保你的系统的软件包列表是最新的。打开终端并运行以下命令:

sudo apt update


步骤2:安装MySQL服务器

在更新软件包列表后,这里我们可以查看一下可使用的MySQL安装包:# 查看可使用的安装包

sudo apt search mysql-server

接下来可以使用以下命令安装MySQL服务器:

# 安装最新版本
sudo apt install -y mysql-server
# 安装指定版本
sudo apt install -y mysql-server-8.0

如果不加-y 会在安装过程中,系统将提示你设置MySQL的root密码。确保密码足够强,且记住它,因为你将在以后需要用到它。

步骤3:启动MySQL服务

安装完成后,MySQL服务会自动启动,未启动则使用以下命令启动MySQL服务:

sudo systemctl start mysql

并将MySQL设置为开机自启动:

sudo systemctl enable mysql

步骤4:检查MySQL状态

你可以使用以下命令来检查MySQL是否正在运行:

sudo systemctl status mysql

至此,你已经成功在线安装了MySQL服务器。

步骤5:修改密码、权限

默认安装是没有设置密码的,需要我们自己设置密码

# 登录mysql,在默认安装时如果没有让我们设置密码,则直接回车就能登录成功。
sudo mysql -uroot -p
# 设置密码 mysql8.0
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 设置密码 mysql5.7
set password=password('新密码');
# 配置IP 5.7
grant all privileges on *.* to root@"%" identified by "密码";
# 刷新缓存
flush privileges;

注意:配置8.0版本参考:我这里通过这种方式没有实现所有IP都能访问;我是通过直接修改配置文件才实现的,MySQL8.0版本把配置文件 my.cnf 拆分成mysql.cnf mysqld.cnf,我们需要修改的是mysqld.cnf文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改 bind-address,保存后重启MySQL即可。

bind-address            = 0.0.0.0

重启MySQL重新加载一下配置:

sudo systemctl restart mysql

离线安装MySQL

如果你需要在没有互联网连接的环境中安装MySQL,可以在另一台联网的计算机上下载MySQL的安装包,然后将其传输到目标Ubuntu机器上进行安装。

步骤1:下载MySQL安装包 
在联网的计算机上,访问 MySQL官方网站 或者MySQL的软件仓库,然后下载适合你系统版本的MySQL安装包(通常是.deb文件)。将下载的文件保存到一个可移动的存储设备上。

步骤2:传输安装包到目标机器
将下载的MySQL安装包从联网计算机传输到目标Ubuntu机器。你可以使用USB驱动器、外部硬盘、网络传输等方法来完成这个步骤。

步骤3:安装MySQL
在目标Ubuntu机器上,使用以下命令来安装MySQL:

.deb文件安装方法

sudo dpkg -i mysql-package-name.deb

请将 mysql-package-name.deb 替换为你下载的MySQL安装包的文件名。

.tar.gz 文件安装方法

# 解压文件
tar -zxvf mysql-package.tar.gz 
# 安装
cd /tmp/mysql-package/bin/
./mysql_install_db

请将 mysql-package.tar.gz 替换为你实际下载的MySQL安装包的文件名。

步骤4:配置MySQL

安装完成后,你可以使用以下命令启动MySQL服务:

sudo systemctl start mysql

然后将MySQL设置为开机自启动:

sudo systemctl enable mysql

步骤5:检查MySQL状态

使用以下命令来检查MySQL是否正在运行:

sudo systemctl status mysql

至此,你已经成功在离线环境中安装了MySQL服务器。总结起来,你可以根据你的网络连接情况选择在线或离线安装MySQL。在线安装更加简单,但离线安装可以让你在没有网络连接的情况下进行安装。希望这篇博客对你有所帮助,顺利安装MySQL!如果你需要更详细的步骤或进一步的配置,请查阅MySQL官方文档或相关教程。

查找与 mysql 相关的进程      ps -aux | grep mysql

使用 systemctl 命令管理 mysql 服务

       systemctl 命令

               查看服务状态 systemctl status mysql

               启动 systemctl start mysql

               停止 systemctl stop mysql

               检查 mysql 是否已设置为开机自动启动

                       systemctl is-enabled mysql

               设置 mysql 开机自动启动

                       systemctl enable mysql

               禁止 mysql 开机自动启动

                       systemctl disable mysql

   关闭 mysql 数据库         mysqladmin -u root -p shutdown

   重启 mysql 数据库         mysqladmin -u root -p reload

       登入mysql后设置允许远程连接

USE mysql;UPDATE mysql.user SET host = '%' WHERE User = 'root';flush privileges;exit

mysql8装完,怎么进入mysqladmin

MySQL 8 安装完成后,您可以通过命令行使用 mysqladmin 工具来进行一些基本操作,例如创建或删除数据库,重置密码等。

要使用 mysqladmin,您需要确保 MySQL 服务正在运行,并且 mysqladmin 工具在您的系统 PATH 环境变量中可用。

以下是一些使用 mysqladmin 的基本示例:

创建新数据库:

mysqladmin -u root -p create my_new_database
在执行上述命令时,系统会提示您输入 root 用户的密码。

删除数据库:

mysqladmin -u root -p drop my_new_database

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

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

相关文章

开放世界目标检测 Grounding DINO

开放世界目标检测 Grounding DINO flyfish Grounding DINO 是一种开创性的开放集对象检测器&#xff0c;它通过结合基于Transformer的检测器DINO与基于文本描述的预训练技术&#xff0c;实现了可以根据人类输入&#xff08;如类别名称或指代表达&#xff09;检测任意对象的功…

【基础篇】1. JasperSoft Studio编辑器与报表属性介绍

编辑器介绍 Jaspersoft Studio有一个多选项卡编辑器&#xff0c;其中包括三个标签&#xff1a;设计&#xff0c;源代码和预览。 Design&#xff1a;报表设计页面&#xff0c;可以图形化拖拉组件设计报表&#xff0c;打开报表文件的主页面Source&#xff1a;源代码页码&#xff…

电子应用设计方案71:智能客厅窗帘系统设计

智能客厅窗帘系统设计 一、引言 智能客厅窗帘系统为用户提供了更加便捷、舒适和个性化的窗帘控制方式&#xff0c;提升了家居的智能化水平和生活品质。 二、系统概述 1. 系统目标 - 实现客厅窗帘的自动开合控制&#xff0c;可通过多种方式操作。 - 能够根据时间、光照强度和用…

免杀对抗—Behinder魔改流量特征去除

前言 在现实的攻防中&#xff0c;往往webshell要比主机后门要用得多&#xff0c;因为我们首先要突破的目标是网站嘛&#xff0c;而且waf也往往会更注重webshell的检测。webshell的免杀分为两个&#xff0c;一是静态查杀&#xff0c;二是流量查杀。静态查杀不用多说了&#xff…

高阶:基于Python paddleocr库 提取pdf 文档高亮显示的内容

预览 第1步&#xff1a;理解基本结构和导入必要的库 # 1. 首先导入需要的库 import os # 用于处理文件和路径 import cv2 # 用于图像处理 import numpy as np # 用于数值计算 from paddleocr import PaddleOCR # 用于文字识别 from pdf2image import convert_from_path #…

如何查看pad的console输出,以便我们更好的进行调试,查看并了解实际可能的问题。

1、以下是baidu AI回复&#xff1a; 2、说明&#xff1a; 1&#xff09;如果小伙伴们经常做android开发的话&#xff0c;这个不陌生&#xff0c;因为调试都是要开启这个开发者模式。并启用USB调试模式。 2&#xff09;需要连上USB线&#xff0c;有的时候会忘记&#xff0c;然…

GitHub 桌面版配置 |可视化界面进行上传到远程仓库 | gitLab 配置【把密码存在本地服务器】

&#x1f947; 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 &#x1f389; 声明: 作为全网 AI 领域 干货最多的博主之一&#xff0c;❤️ 不负光阴不负卿 ❤️ 文章目录 桌面版安装包下载clone 仓库操作如下GitLab 配置不再重复输入账户和密码的两个方…

智慧社区电子商务系统:实现社区资源的数字化管理

2.1vue技术 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。 [5] 与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项…

【软件项目管理】-期末突击

区别常见的项目和活动 项目和活动的区别&#xff1a; 定义&#xff1a; 项目&#xff1a;为创造独特成果而进行的临时性工作。活动&#xff1a;日常运营中的重复性工作。 目标&#xff1a; 项目&#xff1a;实现特定成果&#xff0c;一次性。活动&#xff1a;维持日常运作&am…

【C++】ceil 和 floor 函数的实现与分析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;ceil 和 floor 函数的基础介绍1. ceil 函数定义与功能示例代码输出结果功能分析使用场景 2. floor 函数定义与功能示例代码输出结果功能分析使用场景 &#x1f4af;自行实现…

合合信息:探索视觉内容安全新前沿

2024年12月13日-15日&#xff0c;中国图象图形学学会在杭州召开。大会期间&#xff0c;来自合合信息的图像算法研发总监郭丰俊进行了主题为“视觉内容安全技术的前沿进展与应用”的演讲&#xff0c;介绍了视觉内容安全问题&#xff0c;并总结了现今的技术发展&#xff0c;对我很…

【JetPack】Navigation知识点总结

Navigation的主要元素&#xff1a; 1、Navigation Graph&#xff1a; 一种新的XML资源文件,包含应用程序所有的页面&#xff0c;以及页面间的关系。 <?xml version"1.0" encoding"utf-8"?> <navigation xmlns:android"http://schemas.a…

教师如何打造专属私密成绩查询系统?

期末的校园&#xff0c;被一种特殊的氛围所笼罩。老师们如同辛勤的工匠&#xff0c;精心打磨着每一个教学环节。复习阶段&#xff0c;他们在知识的宝库中精挑细选&#xff0c;把一学期的重点内容一一梳理&#xff0c;为学生们打造出系统的复习框架。课堂上&#xff0c;他们激情…

专栏二十三:Python读取和分析空间数据的经验杂谈

部分情况同样适合单细胞的分析结果 读取数据阶段 1.错误的library_id 包括sc和sq的两种读取方式&#xff0c;大同小异。 理论上有h5数据和spatial文件夹就可以读取成功&#xff0c;并且自动赋予和文件名一样的library_id&#xff0c;例如 slide sq.read.visium("/ho…

如何在谷歌浏览器中启用语音搜索

想象一下&#xff0c;你正在拥挤的地铁上&#xff0c;双手都拿着沉重的购物袋&#xff0c;突然你想搜索附近的咖啡馆。此时如果你能通过语音而不是打字来进行搜索&#xff0c;那将多么的便利&#xff01;在谷歌浏览器中&#xff0c;启用语音搜索功能就是这么简单而高效&#xf…

GCP GCA认证考试Case错题库1(JenciMart+Helicopter+EHR)

GCP GCA认证考试Case错题库1(JenciMartHelicopterEHR) 整理by Moshow郑锴https://zhengkai.blog.csdn.net/ JenciMart 在生产和开发资源之间进行管理职责分离的最小权限模型中&#xff0c;最佳实践是每个应用程序的每个阶段都有自己的项目。这种设置确保权限是细化的&#xf…

MySQL HA 方案 MMM、MHA、MGR、PXC 对比

MySQL高可用架构 MMM (Multi Master Replication Manager) 资源数量说明主DB2用于主备模式的主主复制从DB0~N台可以根据需要配置N台从服务器IP地址2n1N为MySQL服务器的数量监控用户1用户监控数据库状态的MySQL用户(replication)代理用户1用于MMM代理端改变read_only状态 故障…

java12.24日记

运算符&#xff1a; 算术运算符&#xff1a; 顾名思义进行算数运算的 多为&#xff1a;四则运算&#xff0c;加一个取余 &#xff0c;-&#xff0c;*&#xff0c;/以及 %&#xff08;取余&#xff09; 而外的&#xff1a;自增 以及自减--&#xff0c;对原数进行1或者-1 i…

SAP SD销售订单处理流程

本篇博文中的流程&#xff1a; 创建销售订单→依据销售订单创建交货单→依据销售订单开票 一、VA01创建销售订单 1、填入必填项&#xff0c;回车。可点击左上角的依照参考创建按钮。 依照参考创建可以参考以下6个。其中询价单、报价单、订单、合同和计划协议可以理解为特殊的…

怎么设置电脑密码?Windows和Mac设置密码的方法

为电脑设置密码是保护个人信息安全的重要措施。无论是Windows系统还是MacOS系统&#xff0c;设置密码的步骤都相对简单&#xff0c;但需要根据不同的操作系统选择不同的方法。 一、Windows系统电脑密码设置 方法一&#xff1a;通过控制面板设置账户密码 点击桌面左下角的“开…