linux应急响应基础命令

一、cpu使用率-top

top -c -o %CPU
-c 显示进程的命令行参数
-o 按照CPU占用从大到小排序

在这里插入图片描述

二、用户信息

1、查看系统所有用户信息

[root@centos7 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin

Linux操作系统上的用户如果需要登录主机,当其输入用户名和密码之后:
1.首先在/etc/passwd文件中查找是否有你的账号,如果没有无法登录,如果有的话将该用户的UID和GID读出来,此外将此用户的shell设置也一并读出。
2.然后根据UID到/etc/shadow文件中去寻找相应用户的密码,如果匹配一致
3.进入shell控制的阶段。

在这里插入图片描述

2、查看登录账号UID为0的账号

[root@centos7 ~]# awk -F: '{if($3==0)print $1}' /etc/passwd
root

3、查看可登录的账号

[root@centos7 ~]# cat /etc/passwd | grep "/bin/bash"
root:x:0:0:root:/root:/bin/bash

4、查看用户错误的登录信息

可查看显示用户错误的登录列表 包括错误的登录方法 、ip地址 、时间等。

[root@centos7 ~]# lastb
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    
root     ssh:notty    192.168.10.158   Fri Jun 30 13:03 - 13:03  (00:00)    

5、查看所有用户最后的登录信息

[root@centos7 ~]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/1    192.168.10.120   五 630 12:43:37 +0800 2023
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
halt                                       **从未登录过**
mail                                       **从未登录过**
operator                                   **从未登录过**
games                                      **从未登录过**
ftp                                        **从未登录过**
nobody                                     **从未登录过**
systemd-network                            **从未登录过**
dbus                                       **从未登录过**
polkitd                                    **从未登录过**
sshd                                       **从未登录过**
postfix                                    **从未登录过**
chrony                                     **从未登录过**

6、查看用户最近的登录信息

[root@centos7 ~]# last
root     pts/1        192.168.10.120   Fri Jun 30 12:43   still logged in   
root     pts/0        192.168.10.120   Fri Jun 30 12:43   still logged in   
root     tty1                          Fri Jun 30 12:42   still logged in   
reboot   system boot  3.10.0-1160.el7. Fri Jun 30 12:39 - 13:05  (00:26)    

7、查看当前用户的登录情况

[root@centos7 ~]# who
root     tty1         2023-06-30 12:42
root     pts/0        2023-06-30 12:43 (192.168.10.120)
root     pts/1        2023-06-30 12:43 (192.168.10.120)

8、查看是否存在空口令账号

【useradd test】  
【passwd -d test】
账号test 并没有设置密码 

[root@centos7 ~]# awk -F ":" '($2==""){print $1}' /etc/shadow
test

9、查询非本地登录的日志

[root@centos7 log]# last -i | grep -v 0.0.0.0
root     pts/2        192.168.230.1    Tue Apr 16 12:32 - 12:32  (00:00)    
root     pts/2        192.168.43.139   Tue Jun 30 14:46 - 14:47  (00:00)    
root     pts/2        192.168.43.139   Tue Jun 30 14:45 - 14:46  (00:01)  

10、实时登陆查看

[root@centos7 log]# w
 12:34:48 up 1 day,  4:28,  4 users,  load average: 0.08, 0.04, 0.03
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     :0               29Apr20 1447days 13:36  13:36  /usr/bin/Xorg :0 -nr -verbose -audit 4 -auth /var/
root     pts/0    :0.0             Thu13   38.00s  0.04s  0.04s bash
root     pts/1    :0.0             28Sep22  7days  2.95s  1.16s redis-server *:6379
root     pts/2    192.168.230.1    12:34    0.00s  0.05s  0.04s w

三、影子文件-/etc/shadow

[root@centos7 ~]# cat /etc/shadow
root:$6$VeDOa7ohMl.cMb.A$8R1V/0qdPDYK0S7UTp.f0zmRgQktK18U9krzbnJYDm7Wp9Xlycm9krIudQaRZ0UbTNVMjmWu1c./4opeq0Mqj1::0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:19538::::::
dbus:!!:19538::::::
polkitd:!!:19538::::::
sshd:!!:19538::::::
postfix:!!:19538::::::
chrony:!!:19538::::::
/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。
/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。
同 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。每个字段的含义如下:
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

四、计划任务

在linu系统中,计划任务也是维持权限和远程下载恶意软件的一种手段。一般有以下两种方法查看计划任务。

1、查看当前的计划任务

crontab -l

所有root用户定义的 crontab 文件都被保存在 /etc/crontab 目录中
所有非root用户定义的 crontab 文件都被保存在 /var/spool/cron 目录中

在这里插入图片描述

查看指定用户的计划用户

crontab -u root -l 

在这里插入图片描述

2、查看etc目录下的计划文件

一般在linux系统中的任务计划文件都是以cron开头的。可以使用利用正则表表达式的*筛选出/etc目录下所有以cron开头的文件 ls /etc/cron*

[root@centos7 ~]# ls /etc/cron*
/etc/cron.deny  /etc/crontab

/etc/cron.d:
0hourly

/etc/cron.daily:
logrotate  man-db.cron

/etc/cron.hourly:
0anacron

/etc/cron.monthly:

/etc/cron.weekly:

五、开机文件启动项

[root@centos7 ~]#  ls -al /etc/rc.local
lrwxrwxrwx. 1 root root 13 630 12:37 /etc/rc.local -> rc.d/rc.local

/etc/rc.local/etc/rc.d/rc.local的软连接 有一些恶意病毒会把命令放在 这个文件内 开机的时候进行启动

[root@centos7 ~]# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local

查看开机自启动文件

ls -alh /etc/init.d/ls -al /etc/rc.d/init.d/

[root@centos7 log]# ls -alh /etc/init.d/
总用量 40K
drwxr-xr-x.  2 root root   70 630 12:37 .
drwxr-xr-x. 10 root root  127 630 12:37 ..
-rw-r--r--.  1 root root  18K 522 2020 functions
-rwxr-xr-x.  1 root root 4.5K 522 2020 netconsole
-rwxr-xr-x.  1 root root 7.8K 522 2020 network
-rw-r--r--.  1 root root 1.2K 102 2020 README

六、服务排查

1、查看运行的服务

[root@centos7 ~]# chkconfig --list

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关
network         0:关    1:关    2:开    3:开    4:开    5:开    6:关

0,1,2,3,4,5,6表示的是等级
0.表示 关机
1表示:单用户模式
2表示:无网络连接的多用户命令行模式
3表示:有网络连接的多用户命令行模式
4表示:不可用
5表示:带图形界面的多用户模式
6表示:重新启动

2、查看自启动列表

[root@centos7 ~]# systemctl list-unit-files --type service
UNIT FILE                                     STATE   
arp-ethers.service                            disabled
auditd.service                                enabled 
autovt@.service                               enabled 
blk-availability.service                      disabled
brandbot.service                              static  
chrony-dnssrv@.service                        static  
chrony-wait.service                           disabled
chronyd.service                               enabled 
console-getty.service                         disabled
console-shell.service                         disabled
container-getty@.service                      static  
cpupower.service                              disabled
crond.service                                 enabled 
dbus-org.fedoraproject.FirewallD1.service     enabled 
dbus-org.freedesktop.hostname1.service        static  
dbus-org.freedesktop.import1.service          static  
dbus-org.freedesktop.locale1.service          static  
dbus-org.freedesktop.login1.service           static  

enabled:这个daemon将在开机时被执行;
disabled:这个daemon在开机时不会被执行;
static:这个daemon不可以自己启动(enable不可),不过可能会被其他的enabled 的服务来唤醒(关联属性的服务);
mask:这个daemon无论如何都无法被启动,因为已经被强制注销(非删除),可通过systemctlunmask方式改回原本状态;

3、关闭和启动服务

sudo systemctl stop xxx.service  //停止服务
sudo systemctl disable xxx.service  //禁止服务开机启动
sudo systemctl start xxx.service //启动服务
sudo systemctl enable xxx.service //开机启动服务

七、敏感目录

/tmp目录 和命令目录 /usr/bin /usr/bin等经常作为恶意软件的下载目录及关键文件被替换的目录

八、文件排查

使用find命令

find / -name passwd 
从/目录寻找名字叫passwd的并展示出来,find参数很多,使用的时候可以百度

在这里插入图片描述

1、特殊权限文件查找

恶意攻击者经常会在tmp目录下上传、下载恶意文件

[root@centos7 html]# find /var/www/html -perm 777
/var/www/html/phpinfo.php

2、指定关键字查找

网站被攻入之后,攻击者会上传一些恶意脚本,可以使用关键子查询,将这些脚本寻找出来。

find /var/www/html -name "*.php"
将查找这个目录的php文件

3、排查suid程序

对于一些设置了suid权限的程序进程排查

[root@centos7 ~]# find / -type f -perm -04000 -ls -uid 0 2>/dev/null
50348512   32 -rwsr-xr-x   1 root     root        32096 1031  2018 /usr/bin/fusermount
50880946   24 -rws--x--x   1 root     root        23968 101  2020 /usr/bin/chfn
50545721   76 -rwsr-xr-x   1 root     root        73888 89  2019 /usr/bin/chage
50880949   24 -rws--x--x   1 root     root        23880 101  2020 /usr/bin/chsh
50545722   80 -rwsr-xr-x   1 root     root        78408 89  2019 /usr/bin/gpasswd
50545725   44 -rwsr-xr-x   1 root     root        41936 89  2019 /usr/bin/newgrp
50880981   44 -rwsr-xr-x   1 root     root        44264 101  2020 /usr/bin/mount
50880996   32 -rwsr-xr-x   1 root     root        32128 101  2020 /usr/bin/su
51096491  144 ---s--x--x   1 root     root       147336 101  2020 /usr/bin/sudo
50881000   32 -rwsr-xr-x   1 root     root        31984 101  2020 /usr/bin/umount
50934941   60 -rwsr-xr-x   1 root     root        57656 89  2019 /usr/bin/crontab
50930063   24 -rwsr-xr-x   1 root     root        23576 41  2020 /usr/bin/pkexec
51096456   28 -rwsr-xr-x   1 root     root        27856 41  2020 /usr/bin/passwd
273937   36 -rwsr-xr-x   1 root     root        36272 41  2020 /usr/sbin/unix_chkpwd
273935   12 -rwsr-xr-x   1 root     root        11232 41  2020 /usr/sbin/pam_timestamp_check
360663   12 -rwsr-xr-x   1 root     root        11296 1013  2020 /usr/sbin/usernetctl
34082483   16 -rwsr-xr-x   1 root     root        15432 41  2020 /usr/lib/polkit-1/polkit-agent-helper-1
34082471   60 -rwsr-x---   1 root     dbus        57936 930  2020 /

九、隐藏文件

攻击者在获取服务器权限后,会通过一些技巧来隐藏自己的踪迹和后门文件,介绍Linux下的几种隐藏技术。

1、创建隐藏文件

touch .test.txt 在文件前面加上点就是隐藏文件 使用 ls 无法查看 要使用ls -al 查看

2、隐藏创建时间

Unix 下藏后门必须要修改时间,否则很容易被发现,直接利用 touch 就可以了
比如参考 index.php 的时间,再赋给 webshell.php,结果两个文件的时间就一样了。
查看时间格式:
ls -l --time-style '+%Y/%m/%d %H:%M:%S'

利用方法
touch -r index.php webshell.php
或者直接将时间戳修改成某年某月某日。如下 2014 年 01 月 02 日。
touch -t 1401021042.30 webshell.php

十、网络与进程分析

1、查看当前系统的tcp连接情况

[root@centos7 log]# netstat -pantl
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1104/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1448/master         
tcp        0      0 192.168.10.172:22       192.168.10.120:50775    ESTABLISHED 99867/sshd: root@pt 
tcp        0     52 192.168.10.172:22       192.168.10.120:52678    ESTABLISHED 30639/sshd: root@pt 
tcp6       0      0 :::80                   :::*                    LISTEN      50884/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      1104/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1448/master         
tcp6       0      0 :::443                  :::*                    LISTEN      50884/httpd         
tcp6       0      0 :::3306                 :::*                    LISTEN      17598/mysqld        

关闭未知连接 kill -9 pid即可关闭

2、进程分析

查看所有进程分析

[root@centos7 log]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 128180  6820 ?        Ss   6月30   0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    6月30   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   6月30   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    6月30   0:17 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    6月30   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    6月30   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    6月30   0:16 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   6月30   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    6月30   0:00 [watchdog/0]
root         13  0.0  0.0      0     0 ?        S    6月30   0:00 [kdevtmpfs]
root         14  0.0  0.0      0     0 ?        S<   6月30   0:00 [netns]
root         15  0.0  0.0      0     0 ?        S    6月30   0:00 [khungtaskd]
root         16  0.0  0.0      0     0 ?        S<   6月30   0:00 [writeback]
root         17  0.0  0.0      0     0 ?        S<   6月30   0:00 [kintegrityd]
root         18  0.0  0.0      0     0 ?        S<   6月30   0:00 [bioset]
root         19  0.0  0.0      0     0 ?        S<   6月30   0:00 [bioset]
root         20  0.0  0.0      0     0 ?        S<   6月30   0:00 [bioset]
root         21  0.0  0.0      0     0 ?        S<   6月30   0:00 [kblockd]
root         22  0.0  0.0      0     0 ?        S<   6月30   0:00 [md]
root         23  0.0  0.0      0     0 ?        S<   6月30   0:00 [edac-poller]
root         24  0.0  0.0      0     0 ?        S<   6月30   0:00 [watchdogd]
root         30  0.0  0.0      0     0 ?        S    6月30   0:00 [kswapd0]
root         31  0.0  0.0      0     0 ?        SN   6月30   0:00 [ksmd]
root         32  0.0  0.0      0     0 ?        SN   6月30   0:00 [khugepaged]
root         33  0.0  0.0      0     0 ?        S<   6月30   0:00 [crypto]
root         41  0.0  0.0      0     0 ?        S<   6月30   0:00 [kthrotld]
root         43  0.0  0.0      0     0 ?        S<   6月30   0:00 [kmpath_rdacd]
root         44  0.0  0.0      0     0 ?        S<   6月30   0:00 [kaluad]
root         45  0.0  0.0      0     0 ?        S<   6月30   0:00 [kpsmoused]
root         47  0.0  0.0      0     0 ?        S<   6月30   0:00 [ipv6_addrconf]
root         60  0.0  0.0      0     0 ?        S<   6月30   0:00 [deferwq]
root         96  0.0  0.0      0     0 ?        S    6月30   0:04 [kauditd]
root        274  0.0  0.0      0     0 ?        S<   6月30   0:00 [mpt_poll_0]
root        275  0.0  0.0      0     0 ?        S<   6月30   0:00 [ata_sff]

筛选出具体的pid进程的信息

[root@centos7 log]# ps aux|grep 50884
root      50884  0.0  0.9 422160 17696 ?        Ss   6月30   0:05 /usr/sbin/httpd -DFOREGROUND
root      59026  0.0  0.0 112824   988 pts/2    R+   15:31   0:00 grep --color=auto 50884

查看进程树

pstree -p | grep pid

十一、历史命令

history 用来查阅输入的历史命令
攻击者可以可以通过 history -c 来清除记录 
我们可以通过 查看 cat .bash_history 来查阅历史记录

十二、系统日志

1、有多少ip爆破主机root账号

[root@centos7 ~]# grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
     1 192.168.230.1

2、有哪些ip在爆破

[root@centos7 ~]# grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
     1 192.168.230.1

3、爆破用户名字典

[root@centos7 ~]# grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
     1  root

4、登录成功的ip

[root@centos7 ~]# grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
      2 192.168.230.1

5、登录成功的用户名、ip

[root@centos7 ~]# grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
Jul 2 11:41:41 root 192.168.10.120
Jul 2 12:34:14 root 192.168.10.120
Jul 2 16:53:33 root 192.168.10.158

6、查看添加账号信息

[root@centos7 ~]# grep "useradd" /var/log/secure
Jul  2 21:52:24 centos7 useradd[42126]: new group: name=test, GID=1000
Jul  2 21:52:24 centos7 useradd[42126]: new user: name=test, UID=1000, GID=1000, home=/home/test, shell=/bin/bash

7、查看删除账号信息

[root@centos7 ~]# grep "userdel" /var/log/secure
Jul  2 22:11:57 centos7 userdel[88290]: delete user 'test'
Jul  2 22:11:57 centos7 userdel[88290]: removed group 'test' owned by 'test'
Jul  2 22:11:57 centos7 userdel[88290]: removed shadow group 'test' owned by 'test'

十三、WEB日志

在对WEB日志进行安全分析时,一般可以按照两种思路展开,逐步深入,还原整个攻击过程。
第一种:确定入侵的时间范围,以此为线索,查找这个时间范围内可疑的日志,进一步排查,最终确定攻击者,还原攻击过程。
第二种:攻击者在入侵网站后,通常会留下后门维持权限,以方便再次访问,我们可以找到该文件,并以此为线索来展开分析。

Apache日志分析技巧

1、列出当天访问次数最多的IP命令:
 cut -d- -f 1 access_log|uniq -c | sort -rn | head -20
2、查看当天有多少个IP访问:
awk '{print $1}' access_log|sort|uniq|wc -l
3、查看某一个页面被访问的次数:
grep "/index.php" access_log | wc -l
4、查看每一个IP访问了多少个页面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' access_log
5、将每个IP访问的页面数进行从小到大排序:
awk '{++S[$1]} END {for (a in S) print S[a],a}' access_log | sort -n
6、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 access_log| awk '{print $1,$7}'
7、去掉搜索引擎统计当天的页面:
awk '{print $12,$1}' access_log | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l
8、查看2023年7月2日22时这一个小时内有多少IP访问:
awk '{print $4,$1}' access_log | grep 02/Jul/2023:22 | awk '{print $2}'| sort | uniq | wc -l  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FlexLua低代码技术,十分钟搞定4G转LoRa网关设备

在当今物联网时代&#xff0c;无线通信技术的发展日新月异&#xff0c;4G和LoRa作为两种不同的通信技术&#xff0c;各自拥有独特的优势和应用场景。而4G转LoRa网关设备的出现&#xff0c;则将这两种技术有效地结合起来&#xff0c;为物联网应用提供了更多可能性。 4G转LoRa网关…

室内设计师必备的免费3D模型网站,赶紧收藏!

3D模型已经成为室内设计师的重要工具。它们不仅能够帮助设计师更好地理解和呈现他们的设计概念&#xff0c;还能够提高工作效率&#xff0c;减少错误和修改的次数。然而&#xff0c;许多高质量的3D模型都需要付费购买&#xff0c;那么室内设计师必备的免费3D模型网站有哪些? 首…

探索C# 11与.NET 7:入门指南与跨平台开发

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

SpringBoot整合支付宝入门

支付宝支付 对接流程 申请阿里支付官方企业账号配置应用签约产品获取RSAKey&#xff08;非对称加密&#xff09;必须获得两个加密串&#xff1a;一个公钥&#xff0c;一个密钥SDK功能开发业务对接支付回调支付组件 核心所需的参数 APPID商家私钥支付宝公钥支付回调地址网关…

Backend - Django Swagger

目录 一、安装依赖 二、配置环境 三、路由&#xff08;urls&#xff09; 四、swagger UI 界面 &#xff08;一&#xff09;UI 界面 &#xff08;二&#xff09;单引号问题&#xff1a;Expecting property name enclosed in double quotes 1. 原因 2. 解决 五、自定义s…

【技能拾遗】——Markdown+Typora/VSCode与LaTeX的使用

&#x1f4d6; 前言&#xff1a;Markdown 是一种轻量型标记语言&#xff0c;是一种语法. 以 .md 结尾的文本文件就是 Markdown 文件。 相较于 Word&#xff0c;它更加像是 HTML 语言或是 LaTeX \LaTeX LATE​X&#xff0c;并不是最淳朴的那种"所见即所得"。 它处处透…

RTX 腾讯通停止服务,有哪些平滑升级迁移替代方案?

RTX腾讯通&#xff0c;作为腾讯公司于2003年推出的企业即时通讯软件&#xff0c;曾经在政企单位中得到广泛应用。然而&#xff0c;自2015年后&#xff0c;这款软件就未曾更新&#xff0c;近期腾讯将RTX腾讯通官网的域名更改为跳转到企业微信官网&#xff0c;这意味RTX腾讯通正式…

AGI的智力有可能在两年内超过人类水平

特斯拉CEO埃隆马斯克近日与挪威银行投资管理基金CEO坦根的访谈中表示&#xff0c;AGI的智力将在两年内可能超过人类智力&#xff0c;在未来五年内&#xff0c;AI的能力很可能超过所有人类。 马斯克透漏&#xff0c;去年人工智能发展过程中的主要制约因素是缺少高性能芯片&#…

Leetcode-移除链表元素

203. 移除链表元素 题目 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&…

一张图教你看懂亚马逊云科技的超过200个云服务

亚马逊云科技&#xff08;AWS&#xff09;是业界服务种类最全面的☁️厂商&#xff0c;目前有超过200种服务&#xff0c;那这么多服务能否一次性把他们都记住呢&#xff1f; 小李哥给大家带来一张AWS 200项服务列表&#xff0c;大家一眼就能看懂这些服务的使用场景。欢迎大家在…

【HarmonyOS 4+NEXT】开发工具安装指南

&#x1f64b;‍ 一日之际在于晨 ⭐本期内容&#xff1a;开发工具安装 &#x1f3c6;系列专栏&#xff1a;鸿蒙HarmonyOS4NEXT&#xff1a;探索未来智能生态新纪元 文章目录 前言准备工作下载开发工具安装开发工具配置开发环境总结 前言 随着科技的不断进步&#xff0c;智能设…

硬阈值什么意思?

硬阈值是一种非线性函数&#xff0c;常用于信号处理和数据压缩中的阈值处理。具体来说&#xff0c;硬阈值将输入信号中小于或等于给定阈值的值设为零&#xff0c;而大于阈值的值保持不变。数学表示如下&#xff1a; Hard(x, T) { 0, if |x| ≤ T; x, if |x| > T } 其中&a…

【电控笔记6.2】拉式转换与转移函数

概要 laplace&#xff1a;单输入单输出&#xff0c;线性系统 laplace 传递函数 总结

芯洲SCT55610三相栅极驱动器,打造高效无刷直流电机系统

近年来的&#xff0c;无刷直流电机&#xff08;Brushless DC Motor, BLDC&#xff09;在工业、汽车、家电、医疗器械等各个领域得到广泛应用。相对于传统有刷电机&#xff0c;BLDC电机具有以下优势&#xff1a;高效率、寿命长、低噪音、小型化和精确控制。这些优势使得BLDC电机…

Springboot集成Ehcache3实现本地缓存

如果只需要在单个应用程序中使用本地缓存&#xff0c;则可以选择Ehcache&#xff1b;它支持内存和磁盘存储&#xff0c;这里不以注解方式演示&#xff0c;通过自己实现缓存管理者灵活控制缓存的读写&#xff1b; 1、引入相关依赖 <!-- ehcache3集成start --><depende…

ENSP-旁挂式AC

提醒&#xff1a;如果AC不能成功上线AP&#xff0c;一般问题不会出在AC上&#xff0c;优先关注AC-AP线路上的二层或三层组网的三层交换机 拓扑图 管理VLAN&#xff1a;99 | 业务VLAN&#xff1a;100 注意点&#xff1a; 1.连接AP的接口需要打上pvid为管理vlan的标签 2.AC和…

华为配置通过流策略实现流量统计

配置通过流策略实现流量统计示例 组网图形 图1 配置流策略实现流量统计组网图 设备 接口 接口所属VLAN 对应的三层接口 IP地址 SwitchA GigabitEthernet1/0/1 VLAN 10 - - GigabitEthernet1/0/2 VLAN 20 - - GigabitEthernet1/0/3 VLAN 10、VLAN 20 - - S…

【简单讲解下Stylus入门使用方法】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

树--平衡二叉树(AVL树)

平衡二叉树画图网站 一、有序二叉树可能存在的问题 给一个数列{1,2,3,4,5,6}&#xff0c;要求创建一颗二叉排序树&#xff08;BST&#xff09;并分析问题所在。 二、平衡二叉树的基本介绍 平衡二叉树具有以下特点&#xff1a; 它是一颗空树或它的左右两个子树的高度差的绝对…

【多线程】单例模式 | 饿汉模式 | 懒汉模式 | 指令重排序问题

文章目录 单例模式一、单例模式1.饿汉模式2.懒汉模式&#xff08;单线程&#xff09;3.懒汉模式&#xff08;多线程&#xff09;改进 4.指令重排序1.概念2.question:3.解决方法4总结&#xff1a; 单例模式 一、单例模式 单例&#xff0c;就是单个实例 在有些场景中&#xff0c…