【Linux入侵日志排查】

在Linux系统中,不同的服务和应用程序可能会产生不同格式的日志记录。以下是一些常见类型的日志文件及其格式说明:

以下是一些常见的 Linux 日志字段格式说明,以及具体的示例:

  1. /var/log/auth.log:此日志文件包含与身份验证相关的信息,例如用户登录、注销和失败的登录尝试。

示例:

Aug 29 11:30:14 myserver sshd[2222]: Accepted publickey for user1 from 192.168.1.100 port 56789 ssh2: RSA SHA256:1234567890abcdefg
Aug 29 11:30:14 myserver sshd[2222]: pam_unix(sshd:session): session opened for user user1 by (uid=0)
Aug 29 11:35:07 myserver sshd[2222]: Received disconnect from 192.168.1.100 port 56789:11: disconnected by user
Aug 29 11:35:07 myserver sshd[2222]: Disconnected from 192.168.1.100 port 56789
Aug 29 11:35:07 myserver sshd[2222]: pam_unix(sshd:session): session closed for user user1

字段说明:

  • Aug 29 11:30:14:事件发生的时间戳。
  • myserver:发生事件的系统的主机名。
  • sshd[2222]:记录事件的进程名。
  • Accepted publickey for user1 from 192.168.1.100 port 56789 ssh2: RSA SHA256:1234567890abcdefg:事件的详细描述。
  1. /var/log/secure:此日志文件包含与安全相关的信息,例如 SELinux 相关的事件和身份验证事件。

示例:

Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023
Aug 29 11:30:14 myserver sshd[2222]: SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023

字段说明:

  • Aug 29 11:30:14:事件发生的时间戳。
  • myserver:发生事件的系统的主机名。
  • sshd[2222]:记录事件的进程名。
  • SELinux: sshd_set_selinux_context called with security context system_u:system_r:sshd_t:s0-s0:c0.c1023:事件的详细描述。
  1. /var/log/messages:此日志文件包含与系统消息相关的信息,例如系统启动、关机、软件包安装和系统错误。

示例:

Aug 29 11:30:14 myserver kernel: imklog 5.8.10, log source = /proc/kmsg started.
Aug 29 11:30:14 myserver rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="939" x-info="http://www.rsyslog.com"] start
Aug 29 11:30:14 myserver systemd[1]: Started System Logging Service.
Aug 29 11:30:14 myserver systemd[1]: Reached target System Logging.
Aug 29 11:30:14 myserver systemd[1]: systemd-tmpfiles-setup-dev.service: Succeeded.
Aug 29 11:30:14 myserver systemd[1]: Finished Create Volatile Files and Directories.

字段说明:

  • Aug 29 11:30:14:事件发生的时间戳。
  • myserver:发生事件的系统的主机名。
  • kernel:记录事件的进程名。
  • imklog 5.8.10, log source = /proc/kmsg started.:事件的详细描述。
  1. /var/log/syslog:此日志文件包含与系统相关的信息,例如系统启动、关机、软件包安装和系统错误。

示例:

Aug 29 11:30:14 myserver kernel: imklog 5.8.10, log source = /proc/kmsg started.
Aug 29 11:30:14 myserver rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="939" x-info="http://www.rsyslog.com"] start
Aug 29 11:30:14 myserver systemd[1]: Started System Logging Service.
Aug 29 11:30:14 myserver systemd[1]: Reached target System Logging.
Aug 29 11:30:14 myserver systemd[1]: systemd-tmpfiles-setup-dev.service: Succeeded.
Aug 29 11:30:14 myserver systemd[1]: Finished Create Volatile Files and Directories.

字段说明:

  • Aug 29 11:30:14:事件发生的时间戳。
  • myserver:发生事件的系统的主机名。
  • kernel:记录事件的进程名。
  • imklog 5.8.10, log source = /proc/kmsg started.:事件的详细描述。
  1. /var/log/lastlog:此日志文件包含每个用户最近一次登录的信息。

示例:

root     pts/0        192.168.1.100  Wed Aug 29 11:30:14 2018
user1    pts/1        192.168.1.101  Thu Aug 30 09:15:23 2018
user2    pts/2        192.168.1.102  Fri Sep 01 14:30:45 2018

字段说明:

  • root:用户名。
  • pts/0:终端名称。
  • 192.168.1.100:登录时的 IP 地址。
  • Wed Aug 29 11:30:14 2018:最近一次登录的时间戳。
  1. /var/log/wtmp:此日志文件包含与用户登录相关的信息。

示例:

root     pts/0        192.168.1.100  Wed Aug 29 11:30:14 2018
user1    pts/1        192.168.1.101  Thu Aug 30 09:15:23 2018
user2    pts/2        192.168.1.102  Fri Sep 01 14:30:45 2018

字段说明:

  • root:用户名。
  • pts/0:终端名称。
  • 192.168.1.100:登录时的 IP 地址。
  • Wed Aug 29 11:30:14 2018:登录时间戳。
  1. /var/log/btmp:此日志文件包含与失败的用户登录尝试相关的信息。

示例:

root     pts/0        192.168.1.100  Wed Aug 29 11:30:14 2018
user1    pts/1        192.168.1.101  Thu Aug 30 09:15:23 2018
user2    pts/2        192.168.1.102  Fri Sep 01 14:30:45 2018

字段说明:

  • root:用户名。
  • pts/0:终端名称。
  • 192.168.1.100:登录时的 IP 地址。
  • Wed Aug 29 11:30:14 2018:登录时间戳。
  1. Apache访问日志(/var/log/apache2/access.log):

    Apache访问日志记录了所有向Apache服务器发出的请求。一个典型的Apache访问日志记录如下:

    192.168.1.100 - - [10/Feb/2022:15:20:30 +0000] "GET /index.html HTTP/1.1" 200 1024
    

    格式说明:

    • 客户端IP地址(192.168.1.100):发出请求的客户端IP地址。
    • 标识符(-):通常是一个连字符,表示客户端标识符未知。
    • 用户名(-):通常是一个连字符,表示客户端用户名未知。
    • 时间戳([10/Feb/2022:15:20:30 +0000]):事件发生的日期和时间,以及时区。
    • 请求(GET /index.html HTTP/1.1):客户端发出的HTTP请求。
    • 状态码(200):服务器对请求的响应状态码。
    • 响应大小(1024):服务器响应的内容大小,以字节为单位。
  2. Apache错误日志(/var/log/apache2/error.log):

    Apache错误日志记录了Apache服务器的错误和诊断信息。一个典型的Apache错误日志记录如下:

    [Wed Feb 10 15:20:30.123456 2022] [core:error] [pid 12345] [client 192.168.1.100:1234] File does not exist: /var/www/html/favicon.ico
    

    格式说明:

    • 时间戳(Wed Feb 10 15:20:30.123456 2022):事件发生的日期和时间。
    • 日志级别和模块([core:error]):产生日志记录的模块名称和错误级别。
    • 进程ID(pid 12345):产生日志记录的进程ID(PID)。
    • 客户端信息(client 192.168.1.100:1234):发出请求的客户端IP地址和端口号。
    • 消息(File does not exist: /var/www/html/favicon.ico):日志记录的具体消息。
  3. Nginx访问日志(/var/log/nginx/access.log):

Nginx访问日志记录了所有向Nginx服务器发出的请求。一个典型的Nginx访问日志记录如下:

192.168.1.100 - - [10/Feb/2022:15:20:30 +0000] "GET /index.html HTTP/1.1" 200 1024 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

格式说明:

  • 客户端IP地址(192.168.1.100):发出请求的客户端IP地址。
  • 标识符(-):通常是一个连字符,表示客户端标识符未知。
  • 用户名(-):通常是一个连字符,表示客户端用户名未知。
  • 时间戳([10/Feb/2022:15:20:30 +0000]):事件发生的日期和时间,以及时区。
  • 请求(GET /index.html HTTP/1.1):客户端发出的HTTP请求。
  • 状态码(200):服务器对请求的响应状态码。
  • 响应大小(1024):服务器响应的内容大小,以字节为单位。
  • 引用页面(“-”):发出请求的页面的URL。在这个例子中,没有引用页面。
  • 用户代理(“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”):客户端浏览器或爬虫的用户代理字符串。
  1. Nginx错误日志(/var/log/nginx/error.log):

Nginx错误日志记录了Nginx服务器的错误和诊断信息。一个典型的Nginx错误日志记录如下:

2022/02/10 15:20:30 [error] 12345#12345: *1 open() "/var/www/html/favicon.ico" failed (2: No such file or directory), client: 192.168.1.100, server: example.com, request: "GET /favicon.ico HTTP/1.1", host: "example.com"

格式说明:

  • 时间戳(2022/02/10 15:20:30):事件发生的日期和时间。
  • 日志级别([error]):错误级别。
  • 进程ID和线程ID(12345#12345):产生日志记录的进程ID(PID)和线程ID。
  • 连接ID(*1):Nginx为每个连接分配的唯一ID。
  • 消息(open() “/var/www/html/favicon.ico” failed (2: No such file or directory)):日志记录的具体消息。
  • 客户端信息(client: 192.168.1.100):发出请求的客户端IP地址。
  • 服务器名称(server: example.com):Nginx服务器的名称。
  • 请求(request: “GET /favicon.ico HTTP/1.1”):客户端发出的HTTP请求。
  • 主机(host: “example.com”):请求的主机名。

这些日志文件只是Linux系统中众多日志文件的一部分。不同的服务和应用程序可能会产生不同格式的日志记录。在分析日志时,请参考相关文档以了解日志格式和字段的具体含义。使用catgrepawk等命令来过滤和分析日志文件。
12. MySQL错误日志(/var/log/mysql/error.log):

MySQL错误日志记录了MySQL数据库服务器的错误和诊断信息。一个典型的MySQL错误日志记录如下:

2022-02-10T15:20:30.123456Z 12345 [Note] Access denied for user 'invaliduser'@'192.168.1.100' (using password: YES)

格式说明:

  • 时间戳(2022-02-10T15:20:30.123456Z):事件发生的日期和时间,采用ISO 8601格式。
  • 进程ID(12345):产生日志记录的进程ID(PID)。
  • 日志级别([Note]):错误级别。
  • 消息(Access denied for user ‘invaliduser’@‘192.168.1.100’ (using password: YES)):日志记录的具体消息。
  1. PostgreSQL日志(/var/log/postgresql/postgresql-<version>-main.log):

PostgreSQL日志记录了PostgreSQL数据库服务器的操作和错误信息。一个典型的PostgreSQL日志记录如下:

2022-02-10 15:20:30 UTC [12345]: [1-1] user=invaliduser,db=mydb,client=192.168.1.100 ERROR:  syntax error at or near "SELECTT" at character 8

格式说明:

  • 时间戳(2022-02-10 15:20:30 UTC):事件发生的日期和时间。
  • 进程ID(12345):产生日志记录的进程ID(PID)。
  • 会话信息([1-1]):包含会话ID和命令计数器的会话信息。
  • 用户、数据库和客户端信息(user=invaliduser,db=mydb,client=192.168.1.100):发出请求的用户、数据库和客户端IP地址。
  • 错误级别和消息(ERROR: syntax error at or near “SELECTT” at character 8):错误级别和具体消息。
  1. Docker日志:

Docker容器的日志可以通过docker logs命令查看。这些日志通常是容器中运行的应用程序的标准输出和标准错误。日志格式因应用程序而异,因此请参考相关文档以了解日志格式和字段的具体含义。

查看Docker容器的日志:

docker logs container_name_or_id

这些仅是Linux系统中各种日志文件的一部分。在分析日志时,请参考相关文档以了解日志格式和字段的具体含义。使用catgrepawk等命令来过滤和分析日志文件。

其它日志

以下是一些其他常见的 Linux 日志文件及其字段格式说明:

  1. /var/log/dmesg:此日志文件包含与内核启动和运行相关的信息。

字段说明:

  • timestamp:事件发生的时间戳。
  • hostname:发生事件的系统的主机名。
  • process:记录事件的进程名。
  • message:事件的详细描述。
  1. /var/log/kern.log:此日志文件包含与内核相关的信息,例如硬件故障和驱动程序错误。

字段说明:

  • timestamp:事件发生的时间戳。
  • hostname:发生事件的系统的主机名。
  • process:记录事件的进程名。
  • message:事件的详细描述。
  1. /var/log/cron:此日志文件包含与计划任务(cron)相关的信息,例如计划任务的执行和错误。

字段说明:

  • timestamp:事件发生的时间戳。
  • hostname:发生事件的系统的主机名。
  • process:记录事件的进程名。
  • message:事件的详细描述。
  1. /var/log/maillog:此日志文件包含与电子邮件服务器相关的信息,例如邮件传输和接收。

字段说明:

  • timestamp:事件发生的时间戳。
  • hostname:发生事件的系统的主机名。
  • process:记录事件的进程名。
  • message:事件的详细描述。
  1. /var/log/boot.log:此日志文件包含与系统启动相关的信息,例如系统启动过程中的错误和警告。

字段说明:

  • timestamp:事件发生的时间戳。
  • hostname:发生事件的系统的主机名。
  • process:记录事件的进程名。
  • message:事件的详细描述。
  1. /var/log/dpkg.log:此日志文件包含与软件包安装和卸载相关的信息。

字段说明:

  • timestamp:事件发生的时间戳。
  • hostname:发生事件的系统的主机名。
  • process:记录事件的进程名。
  • message:事件的详细描述。
  1. /var/log/faillog:此日志文件包含与失败的用户登录尝试相关的信息。

字段说明:

  • timestamp:事件发生的时间戳。
  • username:用户名。
  • hostname:发生事件的系统的主机名。
  • process:记录事件的进程名。
  • message:事件的详细描述。

请注意,这些日志文件的格式可能因发行版和配置而异。在分析日志时,请确保了解您的系统的具体配置。

各种类型的Web服务器有不同的日志路径和日志格式。以下是一些常见的Web服务器及其日志路径、日志案例和字段说明:

  1. Apache HTTP服务器

日志路径:默认情况下,Apache的访问日志路径为/var/log/apache2/access.log(在Debian/Ubuntu系统上)或/var/log/httpd/access_log(在RedHat/CentOS系统上)。

日志案例:

127.0.0.1 - - [15/Nov/2021:10:30:00 +0000] "GET /index.html HTTP/1.1" 200 2326 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"

字段说明:

  • 127.0.0.1:客户端IP地址
  • -:表示标识符,通常为"-",因为它很少使用
  • -:表示用户身份,通常为"-",因为它很少使用
  • [15/Nov/2021:10:30:00 +0000]:访问时间
  • “GET /index.html HTTP/1.1”:请求方法、请求URI和HTTP协议版本
  • 200:HTTP状态码
  • 2326:响应大小(以字节为单位)
  • “-”:表示referrer,通常为"-",因为它很少使用
  • “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3”:用户代理字符串
  1. Nginx服务器

日志路径:默认情况下,Nginx的访问日志路径为/var/log/nginx/access.log

日志案例:

127.0.0.1 - - [15/Nov/2021:10:30:00 +0000] "GET /index.html HTTP/1.1" 200 2326 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"

字段说明:与Apache HTTP服务器的字段说明相同。

  1. IIS(Internet Information Services)服务器

日志路径:默认情况下,IIS的访问日志路径为%SystemDrive%\inetpub\logs\LogFiles

日志案例:

2021-11-15 10:30:00 127.0.0.1 GET /index.html - 80 - 127.0.0.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/58.0.3029.110+Safari/537.3 200 0 0 15

字段说明:

  • 2021-11-15 10:30:00:访问时间
  • 127.0.0.1:客户端IP地址
  • GET:请求方法
  • /index.html:请求URI
  • -:表示查询字符串,通常为"-",因为它很少使用
  • 80:服务器端口
  • -:表示用户身份,通常为"-",因为它很少使用
  • 127.0.0.1:服务器IP地址
  • Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/58.0.3029.110+Safari/537.3:用户代理字符串
  • 200:HTTP状态码
  • 0:Win32状态码
  • 0:子状态码
  • 15:响应时间(以毫秒为单位)

除了上述常见的Web服务器日志外,还有其他一些Web服务器和应用服务器,它们也有自己的日志路径和格式。以下是一些补充示例:

  1. Tomcat服务器

日志路径:默认情况下,Tomcat的访问日志路径为$CATALINA_HOME/logs/localhost_access_log.YYYY-MM-DD.txt

日志案例:

127.0.0.1 - - [15/Nov/2021:10:30:00 +0000] "GET /index.jsp HTTP/1.1" 200 2326

字段说明:

  • 127.0.0.1:客户端IP地址
  • -:表示远程用户,通常为"-",因为它很少使用
  • [15/Nov/2021:10:30:00 +0000]:访问时间
  • “GET /index.jsp HTTP/1.1”:请求方法、请求URI和HTTP协议版本
  • 200:HTTP状态码
  • 2326:响应大小(以字节为单位)
  1. Lighttpd服务器

日志路径:默认情况下,Lighttpd的访问日志路径为/var/log/lighttpd/access.log

日志案例:

127.0.0.1 127.0.0.1 - [15/Nov/2021:10:30:00 +0000] "GET /index.html HTTP/1.1" 200 2326 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"

字段说明:与Apache HTTP服务器的字段说明相同,但在客户端IP地址后面多了一个服务器IP地址字段。

  1. Caddy服务器

日志路径:Caddy默认没有访问日志,但可以通过配置启用。访问日志路径取决于配置文件中的设置。

日志案例:

{"level":"info","ts":1636968600.123456,"logger":"http.log.access","msg":"handled request","request":{"remote_addr":"127.0.0.1:12345","proto":"HTTP/1.1","method":"GET","host":"localhost","uri":"/index.html","headers":{"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"]}},"common_log":"127.0.0.1 - - [15/Nov/2021:10:30:00 +0000] \"GET /index.html HTTP/1.1\" 200 2326","duration":0.000123,"size":2326,"status":200,"resp_headers":{"Server":["Caddy"],"Content-Type":["text/html"]}}

字段说明:Caddy服务器的日志格式为JSON,包含以下字段:

  • level:日志级别(如info、error等)
  • ts:时间戳
  • logger:记录器名称
  • msg:日志消息
  • request:请求详细信息,包括远程地址、协议、方法、主机、URI和请求头等
  • common_log:通用日志格式,与Apache和Nginx类似
  • duration:请求处理时间(以秒为单位)
  • size:响应大小(以字节为单位)
  • status:HTTP状态码
  • resp_headers:响应头信息

请注意,上述示例中的路径和格式可能会因服务器配置和版本而有所不同。你可以根据需要在服务器配置文件中自定义日志路径和格式。

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

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

相关文章

px4+vio实现无人机室内定位

文章主要讲述px4 如何利用vins_fusion里程计数据实现在室内定位功能。 文章基于以下软、硬件展开。 硬件软件机载电脑&#xff1a; Intel NUC系统&#xff1a;Ubuntu 20.04相机&#xff1a; Intel Realsense D435iros&#xff1a;noetic飞控&#xff1a;Pixhawk 2.4.8固件&am…

音视频项目—基于FFmpeg和SDL的音视频播放器解析(十七)

介绍 在本系列&#xff0c;我打算花大篇幅讲解我的 gitee 项目音视频播放器&#xff0c;在这个项目&#xff0c;您可以学到音视频解封装&#xff0c;解码&#xff0c;SDL渲染相关的知识。您对源代码感兴趣的话&#xff0c;请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…

[EFI]ASUS EX-B365M-V5 Gold G5400 CPU电脑 Hackintosh 黑苹果引导文件

硬件型号驱动情况主板ASUS EX-B365M-V5处理器Intel(R) Pentium(R) Gold G5400 CPU已驱动内存8GB Kingmax Dual Channel已驱动硬盘Vaseky V800 128GB SATA已驱动显卡Radeon RX 560已驱动声卡Realtek ALC887已驱动网卡RTL8111已驱动无线网卡蓝牙Killer(R) Wi-Fi 6 AX1650需要自行…

服务器系列之 成功解决 com.jcraft.jsch.JSchException: Auth fail

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 &#x1f3f7;️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

如何使用rclone将腾讯云COS桶中的数据同步到华为云OBS

在多云策略与数据迁移趋势下&#xff0c;企业往往需要将数据在不同云服务提供商之间进行迁移。本文介绍如何使用rclone工具同步腾讯云COS&#xff08;Cloud Object Storage&#xff09;桶中的数据到华为云OBS&#xff08;Object Storage Service&#xff09;。先决条件是您已经…

【SQL SERVER】序列

原来sqlserver也能用序列呀&#xff0c;我原来以为只有oracle有呢 浅薄了~ 创建序列 CREATE SEQUENCE A_SequenceSTART WITH 1INCREMENT BY 1;使用序列 oracle使用序列是A_Sequence.NEXTVAL&#xff0c;而sqlserver是NEXT VALUE FOR A_Sequence CREATE TABLE A_TABLE (ID IN…

PAT甲级 1023 高精度

1023 Have Fun with Numbers 分数 20 Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the…

vb圣经加注释

Imports System.Data.OleDbPublic Class Form1小目录简写Dim jiuyue As String() {"创", "出", "利", "民", "申", "书", "士", "得", "撒上", "撒下", "王上&quo…

Python---函数的应用案例(多个)

案例&#xff1a;使用print方法打印一条横线 print(- * 40) 案例&#xff1a;对上个案例进行升级&#xff0c;可以根据输入的num数值&#xff0c;生成指定数量的横线 def print_lines(num, length):""" print_lines函数主要作用用于生成多条指定长度的横线&…

cocoapods使用

macOS/iOS系统上做原生开发&#xff0c;需要用到的开源包管理工具&#xff1a;cocoapods。 类似&#xff1a; 语言包管理工具官方仓库镜像仓库私有仓库jsnpm,cnpm,pnpm,yarnpythonpip c#nugetjavagradle&#xff0c;mavenrubygemoc/c/swiftco…

快速幂极简写法快速幂求逆元

快速幂原理介绍 快速幂模板 int qmi(int a, int k, int p) {int res 1;while (k) {//后面的a其实是底数与其指数的运算结果了&#xff0c;是不断迭代的//第一个a其实就是a的2的0次方if (k & 1) res (res * a) % p;a (a * a) % p;//注意&#xff0c;a是一个不断变化的过…

Linux操作系统使用及C高级编程-D9D10Linux 服务搭建与使用

TFTP服务器 TFTP&#xff08;Trivial File Transfer Protocol&#xff09;即简单文件传输协议&#xff0c;是TCP/IP协议中一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。端口号为69 1、使用客户服务器方式和使用UDP数据…

Android 获取设备内存和外存

参考 Android 获取设备运行内存信息 https://blog.csdn.net/b1tb1t/article/details/131290808 Android 获取设备外存 // 全部外存, 和手机标称不一样public static long getTotalStorage() {File path Environment.getExternalStorageDirectory();StatFs stat new StatFs(p…

Qt TCP相关的一些整理:客户端常见操作 socket 通信 network

目录 1、相关的库和类 2、一些常用的API 3、帖子用到的完整核心代码&#xff1a; 1、相关的库和类 Qt下使用tcp协议&#xff0c;需要在工程的pro文件中添加&#xff1a; QT network 需要添加network网络库之后&#xff0c;才可以使用对应的类 客户端的类头文件&#xf…

python趣味编程-5分钟实现一个简单弹跳球游戏(含源码、步骤讲解)

简单的Python弹跳球程序是使用Python编程语言开发的。 Python 中的弹跳球游戏是 使用 Tkinter 和图形用户界面 (GUI) 设计的,它是一个桌面应用程序。 Python 中的弹跳球游戏代码使用Canvas 在 Python 中绘制对象和随机模块。

UVM项目笔记——通过寄存器模型实现AHB接口的寄存器读写(内含源码)

目录 1.前言 2.DRIVER实现 2.1 AHB二级流水时序 2.2 “队列错位法”实现driver 2.3 driver代码 2.4 仿真log与波形 2.5 多级流水拓展方法 1.前言 UVM driver在接口协议的实现中起着非常重要的作用&#xff0c;因为它一端处理基于类的事务级sequence&#xff0c;另一端处…

45-设计问题-最小栈

原题链接&#xff1a; 198. 打家劫舍 题目描述&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&a…

Pytorch从零开始实战10

Pytorch从零开始实战——ResNet-50算法实战 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——ResNet-50算法实战环境准备数据集模型选择开始训练可视化模型预测总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c…

QT专栏2 -Qt for Android

#2023年11月18日 # Qt version 6.6 JDK17 JDK 安装 Java Downloads | Oracle 设置环境变量 鼠标右键我的电脑&#xff0c;出现如下界面 Qt配置 改用JDK18&#xff0c;没有乱码&#xff0c;由于不影响APK产生。 做了好多尝试&#xff0c;更换JDK版本(11,18,19,21)&…

mac gitee新建工程遇到的一些问题

首先&#xff0c;记录一下mac系统显示隐藏文件夹的快捷键&#xff1a;commandshift句号&#xff0c;可以显示工程目录下的隐藏的git文件夹 一 git报错:‘origin‘does not appear to be a git repository的解决方法 找到工程目录下的.git/config文件发现里边没有remote orig…