Linux 常用命令汇总(七):进程管理 系统权限 用户授权

一、进程管理命令

1.1 service

1.1.1 介绍

service 是一个在大多数 Linux 发行版中用于管理系统服务的命令

1.1.2 使用方法

sudo service 服务名 [start|stop|restart|status|...]

1.1.3 常见使用案例

1.1.3.1 启动服务
sudo service apache2 start

这将启动名为 apache2 的服务(例如 Apache HTTP 服务器)

1.1.3.2 停止服务
sudo service nginx stop

这将停止名为 nginx 的服务

1.1.3.3 重启服务
sudo service sshd restart

这将重启名为 sshd 的服务(SSH 服务器)

1.1.3.4 检查服务状态
sudo service postgresql status

这将显示名为 postgresql 的服务的状态

1.1.4 注意事项

  • 不是所有的 Linux 发行版都使用 service 命令。一些发行版(如 systemd 系统的发行版)可能使用 systemctl 来管理服务。
  • 在使用 service 命令时,你需要知道服务的精确名称。你可以通过查看 /etc/init.d/ 目录或使用其他工具(如 chkconfig 或 systemctl list-units --type=service)来找到服务的名称。
  • 对于需要长时间运行的服务,你应该确保它们在系统启动时自动启动。这通常可以通过将服务添加到系统的启动服务列表中来实现。

1.2 runlevel

1.2.1 介绍

runlevel 是一个在 Unix 和类 Unix 系统(包括 Linux)中用于显示系统当前运行级别的命令

1.2.2 使用方法

runlevel 命令通常不带任何参数运行,它会显示当前和之前的运行级别。输出通常是两个字符,第一个字符表示之前的运行级别,第二个字符表示当前的运行级别。

$ runlevel  
N 3

在这个例子中,N 表示没有之前的运行级别(系统刚刚启动),3 表示当前的运行级别是一个多用户模式,但没有图形界面。

1.2.3 运行级别

  • 0:关机。
  • 1:单用户模式。通常用于系统维护,只有 root 用户可以登录。
  • 2:多用户模式,但没有网络。
  • 3:完全的多用户模式,有网络功能,但没有图形界面。
  • 4:未定义,有时被用作用户自定义的运行级别。
  • 5:多用户模式,带有图形界面。这是大多数桌面系统默认的运行级别。
  • 6:重启。

1.2.4 注意事项

  • 并非所有的系统都使用 runlevel 命令。例如,在使用 systemd 的系统中,runlevel 可能不是获取当前运行级别的首选方法。在这些系统中,可以使用 systemctl get-default 命令来获取默认目标(相当于运行级别)。
  • 在某些情况下,runlevel 命令可能无法正确显示之前的运行级别,特别是当系统异常关闭或启动时。

1.3 pgrep

1.3.1 介绍

pgrep 是一个在 Unix 和类 Unix 系统(包括 Linux)中用于查找与给定名称匹配的进程的命令

1.3.2 使用方法

pgrep [选项] 模式

1.3.3 参数详解

  • 选项pgrep 支持多种选项,用于控制搜索的行为,例如 -l 显示进程名和 PID,-f 使用完整命令行进行匹配等。
  • 模式:这是你想要搜索的进程名或正则表达式模式。

1.3.4 常见使用案例

1.3.4.1 查找特定进程的 PID
pgrep sshd

这将返回所有名为 sshd 的进程的 PID 

1.3.4.2 显示进程名和 PID
pgrep -l sshd

除了返回 PID,还会显示进程名 sshd 

1.3.4.3 使用正则表达式查找进程
pgrep '^ss'

这将返回所有以 ss 开头的进程的 PID

1.3.4.4 查找多个进程的 PID
pgrep -f 'sshd|apache2'

这将返回所有完整命令行包含 sshd 或 apache2 的进程的 PID

1.3.5 注意事项

  • pgrep 只返回与给定模式匹配的进程的 PID,而不会提供其他详细信息(如父进程 ID、CPU 使用率等)。如果你需要更多信息,可能需要结合 ps 命令使用。
  • pgrep 在搜索时区分大小写。如果你想要进行不区分大小写的搜索,可以使用正则表达式和适当的选项。
  • 在某些情况下,进程名可能不是唯一的,因此 pgrep 可能会返回多个 PID。 

1.4 nohup

1.4.1 介绍

nohup 是 Unix 和类 Unix 系统(包括 Linux)中的一个命令,用于运行命令,使其在您退出账户/终端会话之后继续运行

1.4.2 使用方法

nohup command [arg1] [arg2] ... [&]

其中 command 是您想要运行的命令,arg1arg2, ... 是该命令的参数。末尾的 & 符号是可选的,它用于将命令放到后台执行

1.4.3 常见使用案例

1.4.3.1 运行一个长时间运行的命令

假设您有一个名为 long_running_process 的命令或脚本,您希望即使关闭终端后它也能继续运行。您可以使用 nohup 来实现这一点

nohup long_running_process &
1.4.3.2 将输出重定向到文件

默认情况下,nohup 命令会将输出重定向到一个名为 nohup.out 的文件中,除非您明确指定了输出文件。例如

nohup long_running_process > output.log 2>&1 &

在这个例子中,标准输出(stdout)被重定向到 output.log 文件,标准错误(stderr)也被重定向到相同的文件(通过 2>&1

1.4.4 注意事项

  • 当您使用 nohup 运行命令时,它会忽略所有挂起(HUP)信号。这意味着即使您关闭了启动该命令的终端会话,命令也会继续运行。
  • nohup 命令默认会输出一条消息到终端,告诉您它已经将命令的输出重定向到哪里。如果您不希望看到这条消息,可以将输出重定向到 /dev/null,例如:nohup command > /dev/null 2>&1 &
  • 使用 nohup 时,您可能还需要考虑如何管理和监控长时间运行的进程。您可以使用 pstophtop 或其他系统监控工具来查看这些进程的状态。

1.5 nice/renice

1.5.1 介绍

nice 和 renice 是 Unix 和类 Unix 系统(如 Linux)中用于调整进程优先级的命令

1.5.2 使用方法

nice [OPTION] [command [arg...]]
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

 1.5.3 常见使用案例

1.5.3.1 假设您想要以较低的优先级运行一个名为 long_task 的程序,可以使用以下命令
nice long_task

默认情况下,nice 会增加进程的优先级值(nice 值)10,这表示降低其优先级。您也可以指定一个特定的 nice 值,使用 -n 选项

nice -n 15 long_task

在这个例子中,long_task 会以 nice 值为 15 运行,这是一个相对较低的优先级 

1.5.3.2 假设您知道某个进程的 PID(进程 ID),并且想要调整其优先级。您可以使用 renice 来实现这一点 
renice +5 -p 1234

这个命令会将 PID 为 1234 的进程的 nice 值增加 5,从而降低其优先级 

您也可以使用其他选项来根据进程组 ID(-g)、用户(-u)等来指定进程 

1.5.4 注意事项

  • 只有超级用户(root)才能为进程设置较低的优先级(更负的 nice 值),或者提高已经运行的进程的优先级。普通用户只能设置较高的优先级(更正的 nice 值)。
  • 进程优先级只是操作系统调度进程时考虑的一个因素,实际的 CPU 时间分配还取决于许多其他因素,如系统负载、进程状态等。
  • 调整进程优先级可能会对系统性能和响应性产生显著影响,因此应该谨慎使用这些命令。

1.6 pstree

1.6.1 介绍

pstree 是一个在 Unix 和类 Unix 系统(包括 Linux)中用于显示进程树状结构的命令

1.6.2 使用方法

pstree [选项]

不加任何选项时,pstree 会显示整个进程树,以树状结构的形式展示所有运行中的进程

1.6.3 参数详解

  • -a:显示 ASCII 字符格式的树状结构。
  • -p:显示每个进程的 PID。
  • -u:显示每个进程的用户名。
  • -n:按 PID 对进程进行排序,而不是按名称。
  • --help:显示帮助信息。
  • --version:显示版本信息。

1.6.4 常见使用案例

1.6.4.1 显示整个进程树
pstree

这将显示从 init(或现代系统上的 systemd)开始的整个进程树

1.6.4.2 显示特定进程的子进程树

如果您只对某个特定进程及其子进程感兴趣,可以使用 -p 选项并指定该进程的 PID

pstree -p 1234

这将显示 PID 为 1234 的进程及其所有子进程的树状结构 

1.6.4.3 以 ASCII 字符显示进程树

默认情况下,pstree 使用垂直和水平线来绘制树状结构。如果您希望只使用 ASCII 字符(这在某些终端或输出格式受限的环境中可能很有用),可以使用 -a 选项

pstree -a

1.6.5 注意事项

  • pstree 命令通常依赖于 /proc 文件系统来获取进程信息,因此它可能不适用于不支持 /proc 的系统或环境中。
  • 由于进程树可能非常庞大和复杂,特别是在大型系统上,因此 pstree 的输出可能会很长。使用过滤器或管道可以将输出限制为您感兴趣的特定部分。

1.7 ps

1.7.1 介绍

ps 是 Unix 和类 Unix 系统(包括 Linux)中用于报告当前系统的进程状态的命令

1.7.2 使用方法

ps [options]

1.7.3 参数详解

  • -e:显示所有进程。
  • -f:显示完整格式的信息,包括 UID、PID、PPID、C、STIME、TTY、TIME 和 CMD。
  • -l:使用长格式显示信息。
  • -u user:显示指定用户的进程。
  • -p pid:通过进程 ID 显示进程信息。
  • -o format:用户自定义输出格式。

1.7.4 常见使用案例

1.7.4.1 显示所有进程的完整信息
ps -ef

这个命令会显示系统上所有进程的详细信息,包括用户 ID(UID)、进程 ID(PID)、父进程 ID(PPID)、CPU 使用率(C)、启动时间(STIME)、控制终端(TTY)、CPU 时间(TIME)和命令行(CMD) 

1.7.4.2 显示指定用户的进程 
ps -u username

将 username 替换为您想要查看其进程的用户名。这个命令将显示该用户运行的所有进程

1.7.4.3 通过进程 ID 显示进程信息
ps -p 1234

将 1234 替换为您想要查看的进程的 PID。这个命令将显示该进程的详细信息 

1.7.5 注意事项

  • ps 命令的输出可能会因为系统和安装的软件的不同而有所差异。一些系统可能支持额外的选项或格式。
  • 在处理大量进程时,ps 命令的输出可能会很长。您可以使用管道和过滤器(如 grep)来限制或搜索特定的进程。
  • ps 命令提供的是进程的快照,而不是实时更新的信息。如果您需要实时监视进程状态,可以考虑使用 top 或 htop 这样的工具。

1.8 pkill

1.8.1 介绍

pkill 是一个在 Unix 和类 Unix 系统(包括 Linux)中用于向进程发送信号的命令,特别地,它可以根据进程名或正则表达式模式来查找并发送信号给匹配的进程

1.8.2 使用方法

pkill [选项] 模式

1.8.3 参数详解

  • -SIGNAL:指定要发送的信号。例如,-9 发送 KILL 信号,强制终止进程。
  • -f:完整匹配进程名,而不仅仅是进程名的开始部分。
  • -u user:只匹配指定用户的进程。
  • -P parent:只匹配指定父进程的子进程。

1.8.4 常见使用案例

1.8.4.1 终止所有名为 "firefox" 的进程
pkill firefox

这个命令会发送 TERM 信号给所有名为 "firefox" 的进程,尝试优雅地终止它们

1.8.4.2 强制终止所有名为 "chrome" 的进程
pkill -9 chrome

使用 -9 选项发送 KILL 信号,这会强制终止进程,不给它们机会进行清理操作

1.8.4.3 终止特定用户的所有进程

假设您想要终止用户名为 "john" 的所有进程,您可以使用

pkill -u john

这会发送 TERM 信号给所有属于用户 "john" 的进程 

1.8.5 注意事项

  • 使用 pkill 发送 KILL 信号时要特别小心,因为这会立即终止进程,不给它们机会进行正常的终止处理。这可能导致数据丢失或其他不可预期的行为。
  • 在使用 pkill 之前,最好先使用 pgrep 命令来查找匹配特定模式的进程 ID(PID),以确保您不会误杀其他不相关的进程。
  • pkill 命令发送的信号可以被进程捕获并处理。不是所有的进程都会对 TERM 信号做出响应,因此有时需要使用更强制的信号,如 KILL

1.9 killall

1.9.1 介绍

killall 是另一个在 Unix 和类 Unix 系统(包括 Linux)中用于向进程发送信号的命令

1.9.2 使用方法

killall [选项] 进程名

1.9.3 与 pkill 区别

pkill 和 killall 的主要区别在于它们如何解释进程名:

  • pkill 使用正则表达式来匹配进程名,因此你可以使用更复杂的模式来查找进程。
  • killall 则直接匹配完整的进程名。这意味着它通常更精确,但不如 pkill 灵活。

1.9.4 参数详解

  • -SIGNAL:指定要发送的信号。例如,-9 发送 KILL 信号。
  • -u user:只匹配指定用户的进程。
  • -i 或 --interactive:在发送信号之前询问用户确认。
  • -q 或 --quiet:不输出任何信息,静默模式。

1.9.5 常见使用案例

1.9.5.1 终止所有名为 "httpd" 的进程
killall httpd

这个命令会发送 TERM 信号给所有名为 "httpd" 的进程

1.9.5.2 强制终止所有名为 "mysqld" 的进程
killall -9 mysqld

使用 -9 选项发送 KILL 信号,强制终止所有 "mysqld" 进程

1.9.5.3 在发送信号前询问用户

如果你想在发送信号之前得到确认,可以使用 -i 选项

killall -i httpd

这个命令会列出所有匹配的 "httpd" 进程,并询问你是否要终止它们

1.9.6 注意事项

  • 和 pkill 一样,使用 killall 发送 KILL 信号时要特别小心,因为这会导致进程立即终止,不给它们机会进行正常的终止处理。
  • 确保你了解你正在终止的进程的作用,以免意外中断系统的重要服务。
  • 在发送信号之前,最好先确认进程是否真的需要被终止,避免不必要的服务中断。

1.10 kill

1.10.1 介绍

kill 是 Unix 和类 Unix 系统(包括 Linux)中的一个基础命令,用于向进程发送信号

1.10.2 使用方法

kill [选项] 信号 进程ID

或者简写为:

kill -信号 进程ID

其中,信号 是你想要发送给进程的信号,进程ID 是你想要管理的进程的唯一标识符

1.10.3 参数详解

  • TERM 或 15:这是默认的信号,请求进程优雅地终止。进程在接收到这个信号后,通常会进行清理工作并正常退出。
  • KILL 或 9:强制终止进程,不给进程任何机会进行清理。这通常用于那些无法响应 TERM 信号的进程。
  • HUP 或 1:挂起信号,常用于让进程重新读取其配置文件。
  • INT 或 2:与在终端上按下 Ctrl+C 产生的信号相同,通常用于中断进程。

1.10.4 常见使用案例

1.10.4.1 优雅地终止一个进程

假设你有一个进程 ID 为 1234 的进程,你想要优雅地终止它,可以这样做

kill 1234

或者:

kill -TERM 1234
1.10.4.2 强制终止一个进程

如果进程没有响应 TERM 信号,你可以使用 KILL 信号强制终止它

kill -KILL 1234
或者简写为:
kill -9 1234

1.10.5 注意事项 

  • 只有具有适当权限的用户才能发送信号给进程。通常,只有进程的所有者或 root 用户才能发送 KILL 信号来强制终止进程。
  • 使用 KILL 信号时要特别小心,因为它会立即终止进程,可能导致数据丢失或其他不可预期的行为。
  • 在发送信号之前,最好先确认进程是否真的需要被终止,并了解你正在发送的信号的作用。

二、系统权限及用户授权相关命令

2.1 chmod

2.1.1 介绍

chmod 是 Unix 和类 Unix 系统(包括 Linux)中的一个命令,用于改变文件或目录的权限

2.1.2 使用方法

chmod [选项] 模式 文件/目录

或者,使用符号模式:

chmod [选项] 操作符 权限 用户/组 文件/目录

2.1.3 权限表示

权限通常使用三个字符来表示,每个字符对应一个用户类别:文件所有者、文件所属组和其他用户。每个字符可以是 r(读)、w(写)或 x(执行),或者 -(无权限)。

例如,权限 rwxr-xr-- 表示:

  • 文件所有者有读、写和执行权限
  • 文件所属组有读和执行权限
  • 其他用户只有读权限
2.1.3.1 数字表示法

除了字符表示法,权限还可以使用数字表示。每个权限(读、写、执行)对应一个数字:

  • 读(r) = 4
  • 写(w) = 2
  • 执行(x) = 1

因此,rwxr-xr-- 可以转换为数字 755,因为:

  • 所有者权限 rwx = 4 + 2 + 1 = 7
  • 组权限 r-x = 4 + 1 = 5
  • 其他用户权限 r-- = 4
2.1.3.2 符号表示法

符号表示法允许你使用 u(用户)、g(组)和 o(其他)来指定权限的更改应用于哪些用户类别,以及使用 +(添加权限)、-(删除权限)和 =(设置权限)来指定权限的更改。

例如,要给文件所有者添加执行权限,你可以使用:

chmod u+x 文件名

2.1.4 常见使用案例

2.1.4.1 使用数字表示法设置权限

将文件 example.txt 的权限设置为所有者有全部权限,组有读和执行权限,其他用户只有读权限

chmod 755 example.txt
2.1.4.2 使用符号表示法添加权限

给文件 script.sh 的所有用户添加执行权限

chmod a+x script.sh
2.1.4.3 使用符号表示法删除权限

从目录 mydir 中删除组和其他用户的写权限

chmod go-w mydir

2.1.5 注意事项

  • 修改文件或目录的权限时,要确保你理解这些更改的影响,因为不当的权限设置可能会导致安全风险或系统不稳定。
  • 通常,只有文件的所有者或 root 用户才能使用 chmod 来更改文件或目录的权限。
  • 使用 ls -l 命令可以查看文件或目录的当前权限。

2.2 chown

2.2.1 介绍

chown 是 Unix 和类 Unix 系统(包括 Linux)中的一个命令,用于更改文件或目录的所有者和所属组

2.2.2 使用方法

chown [选项] 所有者[:组] 文件/目录

2.2.3 常见使用案例

2.2.3.1 更改文件的所有者

将文件 example.txt 的所有者更改为 newuser

chown newuser example.txt
2.2.3.2 同时更改文件的所有者和所属组

将文件 report.pdf 的所有者更改为 john,所属组更改为 staff

chown john:staff report.pdf
2.2.3.3 递归地更改目录及其内容的所有者和所属组

如果你想要更改一个目录及其所有子目录和文件的所有者和所属组,可以使用 -R 选项

chown -R newuser:newgroup directoryname/

这会将 directoryname/ 及其所有内容的所有者更改为 newuser,所属组更改为 newgroup

2.2.4 注意事项

  • 只有 root 用户或具有适当权限的用户才能更改文件或目录的所有者和所属组。
  • 更改文件或目录的所有权可能会影响系统的安全性和稳定性,因此在进行此类更改时应谨慎行事。
  • 使用 ls -l 命令可以查看文件或目录的当前所有者和所属组。

2.3 chgrp

2.3.1 介绍

chgrp 是 Unix 和类 Unix 系统(如 Linux)中的一个命令,用于更改文件或目录的所属组

2.3.2 使用方法

chgrp [选项] 组 文件/目录

2.3.3 常见使用案例

2.3.3.1 更改文件的所属组

将文件 report.txt 的所属组更改为 editors 组

chgrp editors report.txt
2.3.3.2 更改目录及其内容的所属组

如果你想要递归地更改一个目录及其所有子目录和文件的所属组,可以使用 -R 选项

chgrp -R webdev project_directory/

这会将 project_directory/ 及其所有内容的所属组更改为 webdev

2.3.4 注意事项

  • 只有文件的所有者或 root 用户才能使用 chgrp 命令更改文件或目录的所属组。
  • 在更改文件或目录的所属组之前,应确保目标组已经存在于系统中。
  • 更改文件或目录的所属组可能会影响系统的安全性和访问控制策略,因此在进行此类更改时应谨慎行事。
  • 使用 ls -l 命令可以查看文件或目录的当前所属组。

2.4 umask

2.4.1 介绍

umask [选项] [掩码]

2.4.2 使用方法

umask [选项] [掩码]

2.4.3 掩码表示法

umask 的掩码是一个三位或四位的八进制数。每一位对应一种用户类别(文件所有者、文件所属组、其他用户)的权限。

  • 第一位(从左到右)对应文件所有者的权限
  • 第二位对应文件所属组的权限
  • 第三位对应其他用户的权限
  • 第四位(如果存在)在某些系统上用于设置特殊权限(如 SELinux 上下文)

每个数字可以是 0 到 7 之间的任意值,代表不同的权限组合。每个数字实际上是由三个二进制位组成,分别代表读(r)、写(w)和执行(x)权限。

  • 4 代表读权限
  • 2 代表写权限
  • 1 代表执行权限

因此,数字 7 表示读、写和执行权限都有(4 + 2 + 1 = 7),而数字 0 表示没有任何权限。

2.4.4 常见使用案例

2.4.4.1 查看当前掩码
umask

假设输出为 0022,这意味着新创建的文件默认不会有组和其他用户的写权限 

2.4.4.2 设置新的掩码 

将掩码设置为 0002,以便新创建的文件默认只有文件所有者有写权限 

umask 0002

2.4.5 注意事项

  • umask 设置的是默认权限掩码,它不会改变已经存在的文件或目录的权限。
  • umask 的设置通常会在用户的 shell 配置文件(如 .bashrc 或 .bash_profile)中定义,以便在用户登录时自动应用。
  • 系统管理员可能会为整个系统或特定用户设置默认的 umask 值,以控制新文件和目录的默认权限。 

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

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

相关文章

CCF编程能力等级认证GESP—C++5级—20240316

CCF编程能力等级认证GESP—C5级—20240316 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)成绩排序B-smooth 数 参考答案单选题判断题编程题1编程题2 单选…

[flask] flask的基本介绍、flask快速搭建项目并运行

笔记 Flask Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、…

婴儿奶瓶哪个品牌最好?五大热门品牌深度测评推荐

最近很多新手爸妈都在后台私信咨询如何选购婴儿奶瓶,以及要怎么选才能够避雷避坑。为了解答大家的问题,我特地为大家对现在的各种主流款奶瓶进行全面测评。 对于婴儿奶瓶,可能有些新手爸妈觉得随便买买就好,但实际上挑选婴儿奶瓶…

day12-SpringBootWeb 登录认证

一、登录功能 Slf4j RestController public class LoginController {Autowiredprivate EmpService empService;PostMapping("/login")public Result login(RequestBody Emp emp){log.info("员工登录: {}", emp);Emp e empService.login(emp);//登录失败, …

css使用伪类选择器来选择特定模式的元素

在CSS中,伪类选择器用于选择处于特定状态或符合特定条件的元素。以下是一些常用的伪类选择器,它们可以用来选择特定模式的元素: :hover:选择鼠标指针浮动在上面的元素。 a:hover { color: red; }:active:选择并激…

高企认定中科技成果转化是什么呢?

其实,这是一个流程,可以用下面的分段进程来表示:企业开展科研立项—科研立项得到科研结果—科研结果用于产品的生产—新产品品质提高带动了销售的增加。 上面的流程,其实是高企审核的核心,不仅仅关系到了量化打分。更…

负阻尼振荡器仿真模拟

负阻振荡器(Negative resistance oscillator)是利用负阻器件抵消回路中的正阻损耗,产生自激振荡的振荡器。由于负阻器件与回路仅有两端连接,故负阻振荡器又称为“二端振荡器”。 阻尼是指阻碍物体的相对运动、并把运动能量转化为…

NVIDIA 推出地球-2云平台,使用AI超级计算机的模拟技术,预测整个地球的气候变化

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

汇编LOG怎么看

一 汇编中常见的数据类型 C 字符 H 半字 F 全字 D 双字 X 十六进制数 B 二进制数 P 压缩十进制数 Z 非压缩十进制数AREA DS CL4 AREA2 DS 4CL1CL4是一个很常见的定义 类似的还有PL5,XL6 第一个定义保留4 个字节的区域,并将该区域的首地址赋予AREA&#xf…

深入理解 Linux 函数参数

在Linux Shell编程中,函数是一种非常有用的功能,它可以将重复的代码封装起来,提高代码的可重用性和可维护性。在本文中,我们将探讨Linux Shell函数及其参数的相关知识。 函数基础 在Linux Shell中,我们可以使用 func…

new mars3d.layer.GeoJsonLayer({的pupup配置参考

new mars3d.layer.GeoJsonLayer({的pupup配置可选项以及相关效果参考: 说明:popup按属性字段配置,可以是字符串模板或数组 1.popup仅配置{type}{name}等属性的的时候,指显示json文件内数据的type与name,效果如下 相关…

MyBatis核心配置文件:解锁数据之美的密码

MyBatis,这位编程的诗人,通过其独特的核心配置文件,为我们描绘出一幅数据之美的画卷。本篇博客将带你深入探讨MyBatis核心配置文件的奥秘,让你能够更好地理解和运用这个优雅的数据持久化框架。 最近想搞私域,欢迎各位…

【MySQL】8. 基本查询(update/delete/聚合/分组)

表的删改 3. Update 语法: UPDATE table_name SET column expr [, column expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]对查询到的结果进行列值更新 案例: 3.1 将孙悟空同学的数学成绩变更为 80 分 -- 更新值为具体值 -- 查看原数据 SELECT…

开发指南-1:编码技巧与规范开始

目录 实例 1.使用对象代替if及switch 2.使用Array.from快速生成数组 3.使用router.beforeEach来处理跳转前逻辑 4.使用v-if来优化页面加载 5.路由跳转尽量使用name而不是path 6.使用key来优化v-for循环 7.使用computed代替watch 8.统一管理缓存变量 9.使用setTimeout…

【深度学习】训练Stable Diffusion环境

仓库: https://github.com/bmaltais/kohya_ss.git 基础镜像: from kevinchina/deeplearning:sdxllighting_trt_nginx_002api docker run --net host --gpus device0 -e APIWORKS1 -it t1:t1 bash构建环境: sudo -i git clone https://git…

springboot291校园疫情防控系统

校园疫情防控系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统校园疫情防控信息管理难度…

【Python难点答疑】2、为什么要有@classmethod和@staticmethod,有什么区别?

在 Python 中,staticmethod 和 classmethod 都是用来定义类中的特殊方法的装饰器。它们允许我们定义与类相关的方法,而不需要实例化类。虽然它们都允许我们在类中定义方法,但它们的行为和用法略有不同。 1.静态方法(staticmethod&…

Source Insight关于复制一段代码会自动添加空格或者Tab键的配置取消

Source Insight关于复制一段代码会自动添加空格或者Tab键的配置取消,这个情况在我们复制代码的时候对格式非常不友好,解决办法如下。 如下,我们可以设置相关配置: 设置完成后,然后再去复制,可以看到就没有相…

网络编程:包头分析

一、以太网头 以太网中封装了源mac地址以及目的mac地址,还有ip类型,以太网又称为mac头 0X0800 只接收发往本机的mac的ipv4类型的数据帧 0X0806 只接收发往本机的ARP类型的数据帧 0x8035 只接受发往本机的RARP类型的数据帧 0X0003 接收发往本机的MAC所…

【兆易创新GD32H759I-EVAL开发板】IPA与TLI 图层混合的区别

在GD32H7系列中,IPA(Image Processing Algorithm)和TLI(TFT LCD接口)都支持图层混合功能,提供了丰富的人机界面(HMI)显示能力。尽管这两个特性在图层混合方面有一定的相似性&#xf…