linux 進程和計劃管理

查看進程

在Linux系統中,有多個命令可以用來查看進程

以下是一些常用的命令:
ps命令:用于查看當前系統中的進程狀態。

?基本用法:ps -ef,該命令會以完整格式顯示所有進程的詳細信息,包括用戶ID、進程ID、父進程ID、啟動時間、命令等。例如:
```
UID ? ? ? ?PID ?PPID ?C STIME TTY ? ? ? ? ?TIME CMD
root ? ? ? ? 1 ? ? 0 ?0 Mar10 ? ? ? ? ?00:00:02 /sbin/init
root ? ? ? ? 2 ? ? 0 ?0 Mar10 ? ? ? ? ?00:00:00 [kthreadd]
root ? ? ? ? 3 ? ? 2 ?0 Mar10 ? ? ? ? ?00:00:00 [rcu_gp]
```

常用選項:

`ps`命令是Linux系統中用于查看進程狀態的常用工具,它有許多選項,以下是一些常見選項的詳細解釋:
-a功能:顯示所有終端上的進程,包括與終端無關的進程。

-u功能:以用戶為中心的格式顯示進程信息,提供更詳細的用戶相關信息,如用戶名、啟動時間、CPU和內存使用百分比等。
??
-x功能:顯示沒有控制終端的進程,常與`-a`或`-u`等選項結合使用,以查看更全面的進程列表。
? ?
-e功能:顯示所有進程,等同于`-a -x`的組合效果,會列出系統中的所有進程,包括內核線程等。
??
-f功能:以完整格式顯示進程信息,提供更詳細的進程相關字段,如父進程ID(PPID)、進程啟動命令等。
? ??
-l功能:以長格式顯示進程信息,提供更多關于進程的詳細狀態信息,如進程的優先級(PRI)、nice值等。

-f:顯示完整格式的進程信息。
-u:以用戶為主的格式顯示進程信息,會顯示進程的所有者、啟動時間、CPU和內存使用情況。
-x:顯示所有進程,包括沒有控制終端的進程。


top命令:實時動態地查看系統中各個進程的資源占用情況,是一個非常實用的性能分析工具。
基本用法:直接輸入`top`命令即可進入交互界面,界面中會實時更新進程的相關信息,包括CPU使用率、內存使用率、進程狀態等。

?常用操作鍵
? ? ? ? - M:按照內存使用量對進程進行排序。
? ? ? ? - P:按照CPU使用率對進程進行排序。
? ? ? ? - T:按照累計執行時間對進程進行排序。
? ? ? ? - q:退出`top`命令。


htop命令:htop是top命令的增強版,提供了更友好的界面和更豐富的功能。

?基本用法:直接輸入`htop`命令即可啟動。它的界面類似于`top`,但可以更方便地查看和操作進程。例如,它支持鼠標操作,并且可以直接在界面中對進程進行殺除等操作。

?- 常用功能:
? ? ? ? - 可以通過方向鍵在進程列表中移動光標,選擇不同的進程。
? ? ? ? - 按下`F9`鍵可以向選中的進程發送信號,例如SIGKILL(強制終止進程)等。
? ? ? ? - 按下`F2`鍵可以進入設置界面,對htop的顯示格式、排序方式等進行自定義設置。

pgrep命令通過pgrep能對指定進程信息,

如下為示例:

[root@localhost ~]# pgrep ? ?-l ? ? "log"
357 xfs-log/sda3
609 xfs-log/sda1
712 systemd-logind
720 abrt-watch-log
721 abrt-watch-log
1091 rsyslogd
[3]- ?Killed ? ? ? ? ? ? ? ? ?vim aaa
[4]+ ?Killed ? ? ? ? ? ? ? ? ?vim xxx

pstree

[root@localhost ~]# pstree

下面為結果示例
systemd─┬─ModemManager───2*[{ModemManager}]
? ? ? ? ├─NetworkManager─┬─dhclient
? ? ? ? │ ? ? ? ? ? ? ? ?└─2*[{NetworkManager}]
? ? ? ? ├─VGAuthService
? ? ? ? ├─2*[abrt-watch-log]
? ? ? ? ├─abrtd
? ? ? ? ├─accounts-daemon───2*[{accounts-daemon}]
? ? ? ? ├─alsactl
? ? ? ? ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon}
? ? ? ? │ ? ? ? ? ? ? ? ? └─3*[{at-spi-bus-laun}]
? ? ? ? ├─at-spi2-registr───2*[{at-spi2-registr}]
? ? ? ? ├─atd
? ? ? ? ├─auditd─┬─audispd─┬─sedispatch
? ? ? ? │ ? ? ? ?│ ? ? ? ? └─{audispd}
? ? ? ? │ ? ? ? ?└─{auditd}
? ? ? ? ├─avahi-daemon───avahi-daemon
? ? ? ? ├─boltd───2*[{boltd}]
? ? ? ? ├─chronyd
? ? ? ? ├─colord───2*[{colord}]
? ? ? ? ├─crond
? ? ? ? ├─cupsd
? ? ? ? ├─2*[dbus-daemon───{dbus-daemon}]
? ? ? ? ├─dbus-launch
? ? ? ? ├─dconf-service───2*[{dconf-service}]
? ? ? ? ├─dnsmasq───dnsmasq
? ? ? ? ├─evolution-addre─┬─evolution-addre───5*[{evolution-addre}]
? ? ? ? │ ? ? ? ? ? ? ? ? └─4*[{evolution-addre}]
? ? ? ? ├─evolution-calen─┬─evolution-calen───8*[{evolution-calen}]
? ? ? ? │ ? ? ? ? ? ? ? ? └─4*[{evolution-calen}]
? ? ? ? ├─evolution-sourc───3*[{evolution-sourc}]
? ? ? ? ├─fwupd───4*[{fwupd}]
? ? ? ? ├─gconfd-2
? ? ? ? ├─gdm─┬─X───9*[{X}]
? ? ? ? │ ? ? ├─gdm-session-wor─┬─gnome-session-b─┬─abrt-applet───2*[{abrt-applet}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gnome-shell─┬─ibus-daemon─┬─ibus-dconf───3*[{ibus-dconf}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? │ ? ? ? ? ? ? ├─ibus-engine-sim───2*[{ibus-engine-sim}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? │ ? ? ? ? ? ? └─2*[{ibus-daemon}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? └─32*[{gnome-shell}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gnome-software───3*[{gnome-software}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-a11y-settin───3*[{gsd-a11y-settin}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-account───3*[{gsd-account}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-clipboard───2*[{gsd-clipboard}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-color───3*[{gsd-color}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-datetime───3*[{gsd-datetime}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-disk-utilit───2*[{gsd-disk-utilit}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-housekeepin───3*[{gsd-housekeepin}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-keyboard───3*[{gsd-keyboard}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-media-keys───3*[{gsd-media-keys}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-mouse───3*[{gsd-mouse}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-power───3*[{gsd-power}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-print-notif───2*[{gsd-print-notif}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-rfkill───2*[{gsd-rfkill}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-screensaver───2*[{gsd-screensaver}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-sharing───3*[{gsd-sharing}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-smartcard───4*[{gsd-smartcard}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-sound───3*[{gsd-sound}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-wacom───2*[{gsd-wacom}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─gsd-xsettings───3*[{gsd-xsettings}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─nautilus-deskto───3*[{nautilus-deskto}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─seapplet
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─ssh-agent
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─tracker-extract───13*[{tracker-extract}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─tracker-miner-a───3*[{tracker-miner-a}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─tracker-miner-f───3*[{tracker-miner-f}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? ├─tracker-miner-u───3*[{tracker-miner-u}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? │ ? ? ? ? ? ? ? ? └─3*[{gnome-session-b}]
? ? ? ? │ ? ? │ ? ? ? ? ? ? ? ? └─2*[{gdm-session-wor}]
? ? ? ? │ ? ? └─3*[{gdm}]
? ? ? ? ├─gnome-keyring-d───3*[{gnome-keyring-d}]
? ? ? ? ├─gnome-shell-cal───5*[{gnome-shell-cal}]
? ? ? ? ├─goa-daemon───3*[{goa-daemon}]
? ? ? ? ├─goa-identity-se───3*[{goa-identity-se}]
? ? ? ? ├─gsd-printer───2*[{gsd-printer}]
? ? ? ? ├─gssproxy───5*[{gssproxy}]
? ? ? ? ├─gvfs-afc-volume───3*[{gvfs-afc-volume}]
? ? ? ? ├─gvfs-goa-volume───2*[{gvfs-goa-volume}]
? ? ? ? ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}]
? ? ? ? ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}]
? ? ? ? ├─gvfs-udisks2-vo───2*[{gvfs-udisks2-vo}]
? ? ? ? ├─gvfsd─┬─gvfsd-burn───2*[{gvfsd-burn}]
? ? ? ? │ ? ? ? ├─gvfsd-trash───2*[{gvfsd-trash}]
? ? ? ? │ ? ? ? └─2*[{gvfsd}]
? ? ? ? ├─gvfsd-fuse───5*[{gvfsd-fuse}]
? ? ? ? ├─gvfsd-metadata───2*[{gvfsd-metadata}]
? ? ? ? ├─ibus-portal───2*[{ibus-portal}]
? ? ? ? ├─ibus-x11───2*[{ibus-x11}]
? ? ? ? ├─imsettings-daem───3*[{imsettings-daem}]
? ? ? ? ├─irqbalance
? ? ? ? ├─ksmtuned───sleep
? ? ? ? ├─libvirtd───16*[{libvirtd}]
? ? ? ? ├─lsmd
? ? ? ? ├─lvmetad
? ? ? ? ├─master─┬─pickup
? ? ? ? │ ? ? ? ?└─qmgr
? ? ? ? ├─mission-control───3*[{mission-control}]
? ? ? ? ├─packagekitd───2*[{packagekitd}]
? ? ? ? ├─polkitd───6*[{polkitd}]
? ? ? ? ├─pulseaudio───2*[{pulseaudio}]
? ? ? ? ├─rngd
? ? ? ? ├─rpcbind
? ? ? ? ├─rsyslogd───2*[{rsyslogd}]
? ? ? ? ├─rtkit-daemon───2*[{rtkit-daemon}]
? ? ? ? ├─smartd
? ? ? ? ├─sshd───bash───su───bash───pstree
? ? ? ? ├─systemd-journal
? ? ? ? ├─systemd-logind
? ? ? ? ├─systemd-udevd
? ? ? ? ├─tracker-store───7*[{tracker-store}]
? ? ? ? ├─tuned───4*[{tuned}]
? ? ? ? ├─udisksd───4*[{udisksd}]
? ? ? ? ├─upowerd───2*[{upowerd}]
? ? ? ? ├─vmtoolsd───2*[{vmtoolsd}]
? ? ? ? ├─vmtoolsd───3*[{vmtoolsd}]
? ? ? ? ├─wpa_supplicant
? ? ? ? └─xdg-permission-───2*[{xdg-permission-}]

進程管理

將拷貝文件放后臺

[root@localhost ~]# cp ?/root/xxx ?/root/a/b/c/abcd/abc &
[1] 6258

查詢目標進程

[root@localhost ~]# pgrep? ? -l? ? ? "sshd"

[root@localhost ~]# killall ? ?-9 ? ? ? vim ?

后臺開啟文件編輯器,命令后接&,下方為輸出結果

[root@localhost ~]# vim ? ?aaa ?&
[1] 6522
[root@localhost ~]# vim ? ?xxx ?&
[2] 6523

[1]+ ?Stopped ? ? ? ? ? ? ? ? vim aaa

殺死目標進程

kill? ? ?-9/-15? ? ?進程ID
[root@localhost ~]# kill ? ? -9 ? ? 6523

[2]+ ?Stopped ? ? ? ? ? ? ? ? vim xxx

確認終止的進程信息:

jobs? ?-l

確認目標用戶的進程相關信息阻止用戶進程,-U指定用戶,-t指定終端

[root@localhost ~]# pgrep ? -l ?-U? ?"kackli"

[root@localhost ~]#pkill? ?-9? ? ?-U? ?"hackli"? ? ?強制終止用戶hackli的進程

[root@localhost ~]# pgrep ? -l ?-U? ?"kackli"? 確認目標已被進程已被終止

計劃任務管理

一次性任務設置

at命令

在CentOS 7中,可以使用at命令來

使用at命令設置一次性任務
基本語法:at [選項] [時間]
常用選項:
? ? - f:指定包含任務命令的腳本文件。
? ? -l:列出待執行的任務隊列。
? ? -d:刪除指定的任務。
時間指定方式:
? ? 可以使用絕對時間,如HH:MM(例如10:30表示上午10點30分),如果不指定日期,默認是當天。如果要指定日期,可以使用`YYYY-MM-DD HH:MM`的格式。
? ? 也可以使用相對時間,如now + 10 minutes表示10分鐘后,now + 1 hour表示1小時后等。

?4. 示例
在指定時間執行命令:假設要在今天的14:30執行一個命令,將當前目錄下的所有文件列表輸出到file_list.txt文件中,可以這樣做:
at 14:30
warning: commands will be executed using /bin/sh
at> ls -l > file_list.txt
at> <EOT>
```
在輸入at 14:30并回車后,會進入at命令的輸入模式,

提示warning: commands will be executed (警告命令將被執行)

using /bin/sh,此時輸入要執行的命令ls -l > file_list.txt,

然后按Ctrl + D組合鍵(即輸入<EOT>)表示命令輸入結束。
使用相對時間執行任務:比如要在30分鐘后執行一個腳本test.sh,可以這樣寫:
at now + 30 minutes
at> /bin/bash /path/to/test.sh
at> <EOT>
```
查看任務隊列:可以使用`at -l`命令查看當前待執行的任務隊列,例如:

at -l
1 ? ? ? 2025-03-12 14:30 a root
2 ? ? ? 2025-03-12 15:00 a root
```
這里顯示了兩個任務,任務1將在2025年3月12日14:30執行,任務2將在2025年3月12日15:00執行,a表示任務的所有者是root。
刪除任務:如果要刪除任務隊列中的某個任務,可以使用at -d [任務編號],

例如要刪除上面的任務1,可以這樣做:

at -d 1
```

at工作原理
at命令會將用戶提交的任務及其執行時間等信息記錄在/var/spool/at目錄下的文件中。atd服務會定期檢查這個目錄,當到達任務指定的執行時間時,atd服務會讀取任務文件,并按照其中的指令執行相應的任務。任務執行時,會在后臺運行,不會影響當前終端的操作。

周期性任務設置

crontab命令


作用:用于設置和管理用戶的計劃任務。

簡單來說,就是可以讓系統在指定的時間自動執行你設定的命令或腳本。

格式:crontab? ? -u|-e|-l|-r
參數說明:
-u user:指定要操作的用戶,如果不寫,默認是當前用戶。
-e:編輯用戶的crontab文件,也就是用來設置計劃任務的具體內容。
-l:列出用戶的crontab文件中的計劃任務。
-r:刪除用戶的crontab文件,也就刪除了該用戶所有的計劃任務。
計劃任務的時間設置格式:分 時 日 月 周 命令。

示例:0 2 * * * /usr/bin/backup.sh

表示每天凌晨 2 點執行/usr/bin/backup.sh這個腳本

編輯當前用戶的計劃任務:crontab -e

示例:

30 8 * * 1-5 /usr/bin/sendmail user@example.com < /home/user/mail.txt

表示每周一到周五的早上 8 點 30 分,發送/home/user/mail.txt內容到user@example.com
列出當前用戶的計劃任務:crontab -l,會顯示當前用戶設置的所有計劃任務
刪除當前用戶的計劃任務:crontab -r,執行后當前用戶的所有計劃任務都被刪除

下面分別介紹五個字段的含義:

crontab 計劃任務的配置格式
字段位置名稱字段取值范圍特殊字符
第 1 個分鐘(Minute)0 - 59*、/、 -、 ,
第 2 個小時(Hour)0 - 23*、/、-、,
第 3 個日期(Day of month1 - 31*、/、 -、 ,、 ?、 L、 W
第 4 個月份(Month)1 - 12 或 jan, feb, mar, ..., dec*、 /、 -、 ,
第 5 個星期(Day of week)0 - 7(0 和 7 都代表星期日)或 sun, mon, tue, ..., sat*、 /、 -、 、,、 ?、 L、 #

特殊字符含義
*(星號):表示該字段的所有可能取值。例如,在分鐘字段使用 * 表示每分鐘。
/(斜杠):用于指定時間間隔。例如,*/5 表示每隔 5 個單位執行一次,如在分鐘字段使用 */5 表示每 5 分鐘執行一次。
-(連字符):用于指定一個范圍。例如,1-5 表示從 1 到 5 的取值范圍,如在小時字段使用 1-5 表示從凌晨 1 點到凌晨 5 點。
,(逗號):用于指定多個取值。例如,1,3,5 表示取值為 1、3 和 5,如在星期字段使用 1,3,5 表示星期一、星期三和星期五。
?(問號):僅用于日期和星期字段,當一個字段已經有明確的值時,另一個字段可以使用 ? 來表示不指定。例如,若要在每月 10 號執行任務,星期字段就可以用 ?。
L(最后):僅用于日期和星期字段,表示該字段的最后一個值。例如,在日期字段使用 L 表示該月的最后一天;在星期字段使用 L 表示該月的最后一個星期幾。
W(工作日):僅用于日期字段,表示離指定日期最近的工作日。例如,15W 表示離該月 15 號最近的工作日。
#(序號):僅用于星期字段,表示該月的第幾個星期幾。例如,6#3 表示該月的第三個星期五(6 代表星期五)。

示例:
每分鐘執行一次任務:
* * * * * /usr/bin/backup.sh


每天凌晨 2 點執行任務:
0 2 * * * /usr/bin/cleanup.sh


每周六和周日的 10 點 30 分執行任務:
30 10 * * 0,6 /usr/bin/archive.sh


每月 1 號和 15 號的 14 點執行任務:
0 14 1,15 * * /usr/bin/update.sh


每 3 小時執行一次任務:
0 */3 * * * /usr/bin/check_status.sh

??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73134.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73134.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73134.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DeepSeek 多模態大模型 Janus-Pro 本地部署教程

下載模型倉庫 git clone https://github.com/deepseek-ai/Janus.git 國內下載倉庫失敗時&#xff0c;可以使用以下代理&#xff1a; git clone https://github.moeyy.xyz/https://github.com/deepseek-ai/Janus.git 準備 Conda 3.12 虛擬環境 conda create --name deepseek7B p…

Qt開源控件庫(qt-material-widgets)的編譯及使用

項目簡介 qt-material-widgets是一個基于 Qt 小部件的 Material Design 規范實現。 項目地址 項目地址&#xff1a;qt-material-widgets 本地構建環境 Win11 家庭中文版 VS2019 Qt5.15.2 (MSVC2019) 本地構建流程 克隆后的目錄結構如圖&#xff1a; 直接使用Qt Crea…

ARM 嵌入式處理器內核與架構深度剖析(2): ARM 處理器架構剖析

目錄 一、ARM處理器架構剖析 1.1. 指令集架構&#xff08;ISA&#xff09; 1.2. 寄存器集 1.3. 存儲模型 1.4. 異常模型 二、架構設計精要 2.1 處理器模式與特權分級 2.2 寄存器銀行化技術 2.3 指令集演化 三、微架構核心技術 3.1 流水線創新 3.2 內存子系統 3.3 …

Flutter 按鈕組件 TextButton 詳解

目錄 1. 引言 2. TextButton 的基本用法 3. 主要屬性 4. 自定義按鈕樣式 4.1 修改文本顏色 4.2 添加背景色 4.3 修改按鈕形狀和邊距 4.4 樣式定制 5. 高級應用技巧 5.1 圖標文本組合 5.2 主題統一配置 5.3 動態交互 6. 性能優化與注意事項 6.1 點擊區域優化 6.…

std::ranges::views::split, lazy_split, std::ranges::split_view, lazy_split_view

std::ranges::views::split, std::ranges::split_view C20 中引入的用于分割范圍&#xff08;range&#xff09;的組件&#xff0c;允許將輸入范圍按特定分隔符或條件分割成多個子范圍。以下是詳細說明和示例&#xff1a; 基本概念 1. 功能 分割范圍&#xff1a;將輸入范圍&…

c++ constraints與concepts使用筆記

c constraints與concepts使用筆記 1. 模板參數缺乏約束的問題2. Concepts 基本概念3. Concept 的定義與使用4. requires 表達式詳解5. requires 從句 vs requires 表達式完整示例&#xff1a;約束矩陣運算 1. 模板參數缺乏約束的問題 問題分析&#xff1a; 傳統模板參數沒有語…

Qt | 屏幕截圖實現

01 全局截屏控件 1. 鼠標右鍵彈出菜單。 2. 支持全局截屏。 3. 支持局部截屏。 4. 支持截圖區域拖動。 5. 支持圖片另存為。 演示 點擊按鈕即可截圖 源碼: 通過網盤分享的文件:screenwidget屏幕截圖 鏈接: https://pan.baidu.com/s/1PZfQlUXNIoZKEfEtLNV2jQ?pwd=5jsg 提…

2.angular指令

初級使用可以查看視頻 參考手冊 注意 像ng-class,ng-value,ng-href等這些&#xff0c;很多都可以直接用class“{{}}” 原生寫&#xff0c;為啥還出這些指令&#xff0c;是因為原生的比如剛一進頁面就先出現表達式了&#xff0c;瀏覽器走到這里的時候才去解析&#xff0c;給用戶…

CTFshow 【WEB入門】信息搜集 【VIP限免】 web1-web17

CTFshow 【 WEB入門】、【VIP限免】 web1 ----源碼泄露 首先第一步&#xff0c;看源代碼 web2----前臺JS繞過 簡單點擊查看不了源代碼&#xff0c;可以強制查看 比如 Ctrl Shift ICtrl U或者在url前加一個view-source: view-source:http://79999ca1-7403-46da-b25b-7ba9…

java 手搓一個http工具類請求傳body

import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets;public class HttpUtil {/*** JSON請求發起*/public static String httpJsonRequest(String requestUrl, String requestJson) {String responseJson &…

Spring boot3-WebClient遠程調用非阻塞、響應式HTTP客戶端

來吧&#xff0c;會用就行具體理論不討論 1、首先pom.xml引入webflux依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId> </dependency> 別問為什么因為是響應式....…

寫了一個二叉樹構造函數和畫圖函數,方便debug

代碼 class TreeNode(object):def __init__(self, val, leftNone, rightNone):self.val valself.left leftself.right rightdef construct_tree(nodes):if not nodes:return Noneroot TreeNode(nodes[0])queue [root]index 1while index < len(nodes):node queue.p…

QT:串口上位機

創建工程 布局UI界面 設置名稱 設置數據 設置波特率 波特率默認9600 設置數據位 數據位默認8 設置停止位 設置校驗位 調整串口設置、接收設置、發送設置為Group Box 修改配置 QT core gui serialport 代碼詳解 mianwindow.h 首先在mianwindow.h當中定義一個串口指…

【Pandas】pandas Series asof

Pandas2.2 Series Time Series-related 方法描述Series.asfreq(freq[, method, how, …])用于將時間序列數據轉換為指定的頻率Series.asof(where[, subset])用于返回時間序列中指定索引位置的最近一個非缺失值 pandas.Series.asof pandas.Series.asof 方法用于返回時間序列…

沉浸式CSS學習路徑

好的!我將以魔法學院成長故事為框架,為您設計一套沉浸式CSS學習路徑。以下是敘事化學習提綱: 第一卷:像素學徒的覺醒 章節1:被封印的魔法書 發現HTML的"素顏"本質,通過<!DOCTYPE html>解除網頁封印用style標簽打開CSS魔法書,學會給文字穿上color斗篷和…

使用netlify部署github的vue/react項目或本地的dist,國內也可以正常訪問

提供簡潔的部署流程和豐富功能&#xff0c;如自定義域名、自動構建和服務器端功能。通過連接到 Git 倉庫實現持續部署&#xff0c;每次推送代碼都會自動構建和發布&#xff0c;支持無服務器函數&#xff0c;允許在前端項目中實現后端邏輯&#xff0c;提供直觀的用戶界面來管理和…

復現 MoGe

要復現 MoGe&#xff0c;以下給出一般性的復現訓練過程步驟示例&#xff09;的訓練過程&#xff0c;你可以參考以下步驟&#xff1a; 環境準備 安裝必要的深度學習框架&#xff0c;如 TensorFlow 或 PyTorch&#xff0c;以及相關的庫&#xff0c;例如用于數據處理的 NumPy、Pan…

Redis-緩存穿透擊穿雪崩

1. 穿透問題 緩存穿透問題就是查詢不存在的數據。在緩存穿透中&#xff0c;先查緩存&#xff0c;緩存沒有數據&#xff0c;就會請求到數據庫上&#xff0c;導致數據庫壓力劇增。 解決方法&#xff1a; 給不存在的key加上空值&#xff0c;防止每次都會請求到數據庫。布隆過濾器…

如何在自己的網站接入API接口獲取數據?分步指南與實戰示例

將第三方API接入自己的網站是獲取實時數據、擴展功能的重要手段&#xff08;如展示商品、同步訂單、用戶登錄等&#xff09;。以下是完整的接入流程與關鍵實踐&#xff0c;以微店API為例&#xff0c;適用于多數開放平臺。 一、準備工作&#xff1a;注冊與權限申請 注冊開發者…

刷leetcode hot100--動態規劃3.12

第一題乘積max子數組[1h] emmmm感覺看不懂題解 線性dp【計劃學一下acwing&#xff0c;挨個做一下】 線性動態規劃 相似題解析 最長上升子序列 最大上升子序列和 最大連續子段和 乘積最大子數組_嗶哩嗶哩_bilibili 比較奇怪的就是有正負數和0&#xff0c;如何處理&#xff1f…