【網絡編程】幾個常用命令:ping / netstat / xargs / pidof / watch




在這里插入圖片描述



  • ping:檢測網絡聯通
    • 1. ping 的基本功能
    • 2. ping 的工作原理
    • 3. ping 的常見用法
    • 4. ping 的輸出解釋
    • 5. ping 的應用場景
    • 6. 注意事項
  • netstat:查看網絡狀態
    • 1. netstat 的基本功能
    • 2. 常見用法
    • 3. 示例
    • 4. 輸出字段解釋
    • 5. netstat 的替代工具
    • 6. 注意事項
  • xargs:將數據轉換為其他命令的命令行參數
    • 1. xargs 的基本功能
    • 2. 常見用法
    • 3. 示例
  • pidof:根據名字查找并返回進程PID
    • 1. pidof 的基本功能
    • 2. 常見用法
    • 3. 示例
    • 4. 輸出解釋
    • 5. 使用場景
    • 6. 注意事項
  • watch:動態刷新的數字監控
    • 1. watch 的基本功能
    • 2. 常見用法
    • 3. 示例
    • 4. 輸出解釋
    • 5. 使用場景
    • 6. 注意事項



ping:檢測網絡聯通

ping 是一種常用的網絡診斷工具,用于測試主機之間的連通性以及測量網絡延遲。通過發送 ICMP(Internet Control Message Protocol)回聲請求(Echo Request)消息到目標主機,并等待其返回 ICMP 回聲應答(Echo Reply),可以判斷目標主機是否可達,并評估網絡性能。

以下是關于 ping 命令的詳細講解:




1. ping 的基本功能

  • 測試連通性:驗證本地主機與目標主機之間的網絡連接是否正常。
  • 測量延遲:計算從發送請求到接收響應的時間(通常以毫秒為單位),反映網絡的速度和穩定性。
  • 檢測丟包率:統計在一定時間內發送的請求中有多少未收到響應,從而判斷網絡質量。



2. ping 的工作原理

  1. 發送 ICMP 請求

    • 本地主機向目標主機發送一個 ICMP Echo Request 消息。
    • 這個消息包含一個唯一的標識符和序列號,用于區分不同的請求。
  2. 接收 ICMP 應答

    • 如果目標主機正常運行且網絡暢通,它會返回一個 ICMP Echo Reply 消息。
    • 本地主機會記錄從發送請求到接收應答的時間差,即往返時間(RTT,Round-Trip Time)。
  3. 統計結果

    • 根據多次請求的結果,計算平均延遲、最大延遲、最小延遲以及丟包率。



3. ping 的常見用法

(1) 基本語法
ping [選項] 目標地址
  • 目標地址:可以是域名(如 www.example.com)或IP地址(如 192.168.1.1)。
    可以輸入自己服務器的域名或虛擬機的IP地址


(2) 常見選項
選項描述
-c <次數>指定發送的ICMP請求次數(例如:ping -c 4 www.example.com)。
-i <間隔>設置兩次請求之間的時間間隔(秒)。
-t <TTL>設置數據包的生存時間(Time To Live,TTL)。
-s <大小>設置發送的數據包大小(字節)。
-W <超時>設置等待響應的超時時間(秒)。


(3) 示例
  • 發送4次請求

    ping -c 4 www.example.com
    
  • 指定數據包大小為1024字節

    ping -s 1024 www.example.com
    
  • 設置每次請求間隔為2秒

    ping -i 2 www.example.com
    



4. ping 的輸出解釋

以下是一個典型的 ping 輸出示例:

PING www.example.com (93.184.216.34): 56 data bytes
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=12.3 ms
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.8 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=12.1 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=11.9 ms--- www.example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 11.800/12.025/12.300/0.200 ms

字段說明
  • PING

    • 顯示目標地址及其解析后的IP地址。
    • 數據包大小默認為56字節(加上ICMP頭部后總共64字節)。
  • 每次請求的響應

    • 64 bytes:表示接收到的回顯應答數據包大小。
    • icmp_seq=<序號>:表示該數據包的序列號。
    • ttl=<值>:表示數據包的生存時間(TTL,Time To Live),反映了路由跳數。
    • time=<值>:表示往返時間(RTT,Round-Trip Time),單位為毫秒。
  • 統計信息

    • packets transmitted:發送的總數據包數。
    • received:接收到的總數據包數。
    • packet loss:丟包率(百分比)。
    • time:整個測試過程的持續時間。
    • rtt min/avg/max/mdev:往返時間的最小值、平均值、最大值以及標準偏差。



5. ping 的應用場景

(1) 測試網絡連通性
  • 使用 ping 可以快速檢查本地主機與目標主機之間的網絡是否連通。
  • 如果無法收到任何響應,可能是因為目標主機不可達、網絡中斷或目標主機禁用了ICMP響應。
(2) 測量網絡延遲
  • 通過觀察 ping 輸出中的 time 值,可以評估網絡的速度和穩定性。
  • 較低的延遲通常意味著更好的網絡性能。
(3) 檢測丟包率
  • 如果部分請求沒有收到響應,可能是網絡擁塞或不穩定。
  • 高丟包率可能表明網絡質量較差。
(4) 調試網絡問題
  • 結合其他工具(如 traceroutemtr),可以定位網絡故障的具體位置。



6. 注意事項

(1) 目標主機可能禁用ICMP
  • 某些主機或防火墻可能會禁用ICMP協議,導致即使網絡正常也無法收到響應。
(2) 網絡延遲的影響因素
  • 網絡延遲可能受到多種因素的影響,包括物理距離、路由器數量、帶寬限制等。
(3) 數據包大小的影響
  • 發送較大的數據包可能會暴露網絡中的帶寬瓶頸或MTU(Maximum Transmission Unit)問題。
(4) 不同平臺的實現差異
  • Windows 和 Linux 的 ping 命令在默認行為上可能略有不同(例如,默認數據包大小)。



netstat:查看網絡狀態

我們在寫一些網絡服務時,如寫 udp Server / tcp Server ,我們有時需要查看這些網絡服務是否啟動以及其他狀態信息,如果直接使用 ps 命令,只能查看到一些偏向進程方面的,因此我們推薦 netstat

netstat 是一個用于顯示網絡連接、路由表、接口統計信息、偽裝連接和多播成員的命令行工具。它是網絡管理員和開發人員常用的工具之一,可以幫助診斷網絡問題、監控網絡狀態以及分析系統上的活動連接。

以下是關于 netstat 的詳細介紹:



1. netstat 的基本功能

netstat 提供了以下主要功能:

  • 顯示活動的網絡連接:列出當前系統的TCP/UDP連接。
  • 顯示路由表信息:查看系統的IP路由表。
  • 顯示接口統計信息:顯示網絡接口的流量統計信息。
  • 顯示監聽端口:列出正在監聽的端口及其對應的服務或進程。
  • 顯示網絡協議統計信息:提供TCP、UDP、ICMP等協議的統計數據。

在這里插入圖片描述




2. 常見用法

(1) 基本語法
netstat [選項]
(2) 常見選項

注意:在使用時,這些選項的前后順序無所謂,沒有規定

選項描述
-aall,顯示所有連接和偵聽端口(包括TCP和UDP)。
-ttcp,僅顯示TCP連接。
-uudp,僅顯示UDP連接。
-nnumber,以數字形式顯示地址和端口號(不進行DNS解析)。
-l僅顯示處于監聽狀態的連接。
-pprocess,顯示與每個連接關聯的進程ID(需要root權限)。
-r顯示內核路由表。
-i顯示網絡接口的統計信息。
-s顯示每個協議的統計信息(如TCP、UDP等)。



2. 常見用法

(1) 顯示所有連接和偵聽端口
netstat -a
  • 輸出中會包含所有的TCP和UDP連接,包括已建立的連接和正在監聽的端口。
(2) 顯示所有TCP連接
netstat -at
  • 只顯示TCP協議相關的連接。
(3) 顯示所有UDP連接
netstat -au
  • 只顯示UDP協議相關的連接。
(4) 顯示監聽端口
netstat -ln
  • 使用 -l 選項只顯示處于監聽狀態的端口,-n 選項避免DNS解析,加快輸出速度。
(5) 顯示與進程關聯的連接
sudo netstat -ntp
  • -n:以數字形式顯示地址和端口號。
  • -t:僅顯示TCP連接。
  • -p:顯示與每個連接關聯的進程ID和名稱。
  • 需要使用 sudo 提升權限,因為普通用戶無法訪問某些進程信息。
(6) 顯示路由表
netstat -r
  • 輸出系統的IP路由表,類似于 routeip route 命令。
(7) 顯示網絡接口統計信息
netstat -i
  • 列出所有網絡接口的流量統計信息,包括接收和發送的數據包數量、錯誤數等。
(8) 顯示協議統計信息
netstat -s
  • 提供TCP、UDP、ICMP等協議的詳細統計信息,例如已建立的連接數、丟棄的數據包數等。



3. 示例

以下是一個典型的 netstat 輸出示例:

Active Internet connections (only servers)
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      1234/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1235/cupsd
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1236/dhclient


4. 輸出字段解釋

  • Proto:協議類型(TCP或UDP)。
  • Recv-Q:接收隊列中的數據包數量。
  • Send-Q:發送隊列中的數據包數量。
  • Local Address:本地地址和端口。
  • Foreign Address:遠程地址和端口。
  • State:連接狀態(僅適用于TCP,例如 LISTENESTABLISHED 等)。
  • PID/Program name:與該連接關聯的進程ID和程序名稱(需使用 -p 選項)。



5. netstat 的替代工具

在現代Linux系統中,netstat 已逐漸被更高效的工具(如 ssip)取代:

  • ss:功能類似 netstat,但性能更高,推薦使用。
  • ip:用于管理和顯示網絡接口、路由表等信息。

例如,使用 ss 查看監聽端口:

ss -tnlp



6. 注意事項

(1) 權限問題
  • 某些選項(如 -p)需要 root 權限才能查看進程信息。

    比如下圖,有些條目缺失了一些信息,只有我們自己啟動的 ./server

    在這里插入圖片描述

  • 如果沒有權限,可以嘗試使用 sudo 提升權限。

    如下圖,使用 sudo 提權后,所有信息都展示出來了

    在這里插入圖片描述

(2) 性能問題
  • 在高并發環境下,netstat 的性能可能不如 ss,因為它需要讀取大量的內核數據。
(3) 替代工具
  • 在較新的 Linux 發行版中,netstat 可能已被廢棄或不再默認安裝。可以使用 ssip 命令作為替代。



xargs:將數據轉換為其他命令的命令行參數

xargs 是一個功能強大的命令行工具,用于從標準輸入(stdin)讀取數據,并將其作為參數傳遞給其他命令執行。它可以幫助用戶將管道或文件中的數據轉換為命令行參數,從而實現批量處理任務。

以下是關于 xargs 的詳細講解:


1. xargs 的基本功能

  • 從標準輸入讀取數據xargs 從標準輸入中讀取數據,通常是通過管道或其他命令的輸出。
  • 構建命令行參數:將讀取到的數據轉換為命令行參數,并傳遞給指定的命令。
  • 批量執行命令:支持對多個輸入項逐一或分批執行命令。



2. 常見用法

(1) 基本語法
command | xargs [選項] [命令]
  • command:生成輸入數據的命令。
  • xargs:將輸入數據轉換為命令行參數。
  • [選項]:控制 xargs 的行為。
  • [命令]:接收參數并執行的命令。



3. 示例

(1) 基本用法
echo "file1 file2 file3" | xargs ls
  • file1 file2 file3 作為參數傳遞給 ls 命令,等價于:

    ls file1 file2 file3
    



pidof:根據名字查找并返回進程PID

pidof 是一個用于查找正在運行的進程的 PID(Process ID)的命令行工具。它根據指定的進程名稱返回與該名稱匹配的進程的 PID 列表。pidof 是系統管理員和開發人員常用的工具之一,尤其在需要動態獲取某個服務或程序的 PID 時非常方便。

以下是關于 pidof 的詳細講解:


1. pidof 的基本功能

  • 查找進程 ID:根據進程名稱返回對應的 PID。
  • 支持多個匹配項:如果存在多個同名進程,pidof 會返回所有匹配的 PID。
  • 簡單易用:語法簡單,適合腳本中使用。



2. 常見用法

(1) 基本語法
pidof [選項] 進程名稱
(2) 常見選項
選項描述
-s只返回一個 PID(即使有多個匹配的進程)。
-x匹配腳本或可執行文件(不僅限于二進制程序)。
-o PID,...排除指定的 PID 或特殊符號(如 $$ 表示當前 shell 的 PID)。



3. 示例

(1) 查找特定進程的 PID
pidof sshd
  • 如果 sshd 正在運行,輸出可能是:

    1234 1235
    
  • 這表示有兩個 sshd 進程正在運行,其 PID 分別為 12341235

(2) 只返回一個 PID
pidof -s sshd
  • 即使有多個 sshd 進程,也只返回其中一個 PID,例如:

    1234
    
(3) 匹配腳本或可執行文件
pidof -x myscript.sh
  • 如果 myscript.sh 是一個正在運行的腳本,pidof 會返回其 PID。
(4) 排除特定 PID
pidof -o $$ bash
  • $$ 表示當前 shell 的 PID。此命令會列出所有正在運行的 bash 進程的 PID,但排除當前 shell 的 PID。



4. 輸出解釋

pidof 的輸出是一個由空格分隔的 PID 列表。如果沒有找到匹配的進程,則不會有任何輸出。

例如:

$ pidof nginx
1234 1235 1236

這表示有三個 nginx 進程正在運行,其 PID 分別為 123412351236




5. 使用場景

(1) 動態獲取 PID

在編寫腳本時,可以使用 pidof 獲取某個服務的 PID 并進行進一步操作。例如:

PID=$(pidof mysqld)
if [ -n "$PID" ]; thenecho "MySQL is running with PID $PID"
elseecho "MySQL is not running"
fi
(2) 結合其他工具

可以將 pidof 的輸出與其他工具結合使用。例如:

  • 使用 kill 發送信號:有兩種寫法

    // 方法一:
    kill $(pidof nginx)// 方法二: 通過管道
    pidof nginx | xargs kill -9
    
  • 使用 ps 獲取更多進程信息:

    ps -p $(pidof sshd)
    
(3) 監控進程狀態

通過定期檢查某個進程是否存在,可以實現簡單的進程監控功能。




6. 注意事項

**(1) 進程名稱匹配 **
  • pidof 根據進程名稱進行匹配,因此可能會出現誤匹配的情況。例如,pidof http 可能會匹配到 httpd 或其他包含 http 的進程。
  • 如果需要更精確的匹配,建議結合 pgrepps 使用。
(2) 權限問題
  • 如果當前用戶沒有權限訪問某些進程的信息,pidof 可能無法返回這些進程的 PID。
(3) 替代工具
  • 在某些情況下,pgrep 是一個更強大的替代工具,因為它可以根據更多的條件(如用戶、命令行參數等)進行過濾。



watch:動態刷新的數字監控

watch 是一個非常實用的命令行工具,用于定期執行其他命令并將輸出顯示在終端中。它可以幫助用戶實時監控系統狀態、進程運行情況或其他動態變化的信息。通過 watch,你可以以固定的時間間隔重復執行某個命令,并觀察其結果的變化。

以下是關于 watch 的詳細講解:




1. watch 的基本功能

  • 定期執行命令:按照指定的時間間隔(默認為2秒)重復執行某個命令。
  • 高亮變化:可以高亮顯示輸出中發生變化的部分,便于快速發現差異。
  • 全屏顯示:將命令的輸出完整地顯示在終端中,類似于一個動態更新的窗口。



2. 常見用法

(1) 基本語法
watch [選項] 命令
(2) 常見選項
選項描述
-n <秒>設置刷新時間間隔(默認為2秒)。
-d--difference高亮顯示輸出中的變化部分。
-t--no-title禁用頂部標題欄(顯示命令和時間信息)。
-b--beep如果輸出發生變化,則發出蜂鳴聲。
-g--chgexit當輸出發生變化時立即退出。



3. 示例

(1) 默認使用
watch df -h
  • 每隔2秒執行一次 df -h 命令,顯示磁盤使用情況。
(2) 自定義刷新時間
watch -n 5 free -m
  • 每隔5秒執行一次 free -m 命令,顯示內存使用情況。
(3) 高亮顯示變化
watch -d uptime
  • 每隔2秒執行一次 uptime 命令,并高亮顯示輸出中發生變化的部分。
(4) 禁用標題欄
watch -t date
  • 每隔2秒執行一次 date 命令,并禁用頂部標題欄。
(5) 輸出變化時發出蜂鳴聲
watch -b ls
  • 每隔2秒執行一次 ls 命令,如果目錄內容發生變化,則發出蜂鳴聲。
(6) 輸出變化時立即退出
watch -g ps aux | grep sshd
  • 每隔2秒檢查是否有 sshd 進程,如果輸出發生變化(例如進程啟動或停止),則立即退出。



4. 輸出解釋

watch 的輸出通常包括以下部分:

  • 頂部標題欄:顯示命令、當前時間以及刷新間隔。
  • 命令輸出:每次執行命令的輸出結果。
  • 高亮部分:如果啟用了 -d 選項,輸出中發生變化的部分會被高亮顯示。

例如:

Every 2.0s: df -h                                                                                         Tue Feb 28 10:00:00 2023Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  2.1M  1.6G   1% /run
/dev/sda1        50G   12G   36G  25% /
...



5. 使用場景

(1) 監控系統資源
  • 使用 watch 可以方便地監控系統資源的使用情況,例如:
    • 內存使用:watch free -m
    • CPU負載:watch top
    • 磁盤空間:watch df -h
(2) 監控網絡連接
  • 查看活動的網絡連接:watch netstat -tuln
  • 查看路由表變化:watch route -n
(3) 監控文件或目錄變化
  • 查看某個目錄的內容變化:watch ls -l /path/to/directory
  • 查看日志文件的變化:watch tail -n 10 /var/log/syslog
(4) 監控服務狀態
  • 查看某個服務的狀態:watch systemctl status sshd
  • 查看某個端口的監聽狀態:watch lsof -i :80



6. 注意事項

(1) 終止 watch
  • 按下 Ctrl+C 可以終止 watch 的運行。
(2) 命令輸出的限制
  • watch 的輸出會根據終端窗口的大小自動調整,因此不適合處理非常大的輸出。
(3) 高亮功能的限制
  • -d 選項只能高亮顯示文本內容的變化,無法檢測到格式或顏色的變化。
(4) 替代工具
  • 如果需要更復雜的監控功能,可以考慮使用 while 循環結合 sleep,例如:

    while true; do clear; df -h; sleep 5; done
    

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

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

相關文章

【C++】:STL詳解 —— list類

目錄 list的概念 list的構造函數 list的大小 size() resize() empty() list的插入 push_front()和emplace_front() push_back()和emplace_back() insert()和emplace() list的刪除 pop_front() pop_back() erase() remove() remove_if() unique() clear()…

【數據結構】(11) Map 和 Set

一、Map 和 Set 的簡介 1、Set 和 Map Map 和 Set 是集合類框架學習的最后一部分。Map 和 Set 都是接口&#xff0c;需要通過 TreeSet、HashSet 和 TreeMap、HashMap 實例化。注意&#xff0c;Set 實現了 Collection&#xff0c;Map 并沒有。 Set 存放的是鍵&#xff08;Key&a…

關于CanvasRenderer.SyncTransform觸發調用的機制

1&#xff09;關于CanvasRenderer.SyncTransform觸發調用的機制 2&#xff09;小游戲Spine裁剪掉幀問題 3&#xff09;Dedicated Server性能問題 4&#xff09;.mp4視頻放入RT進行渲染的性能分析閉坑指南 這是第421篇UWA技術知識分享的推送&#xff0c;精選了UWA社區的熱門話題…

Kronecker分解(K-FAC):讓自然梯度在深度學習中飛起來

Kronecker分解&#xff08;K-FAC&#xff09;&#xff1a;讓自然梯度在深度學習中飛起來 在深度學習的優化中&#xff0c;自然梯度下降&#xff08;Natural Gradient Descent&#xff09;是一個強大的工具&#xff0c;它利用Fisher信息矩陣&#xff08;FIM&#xff09;調整梯度…

【HTML— 快速入門】HTML 基礎

準備工作 vscode下載 百度網盤 Subline Text 下載 Sublime Text下載 百度網盤 vscode 下載 Sublime Text 是一款輕量好用的文本編輯器&#xff0c;我們在寫前端代碼時&#xff0c;使用 Sublime Text 打開比使用記事本打開&#xff0c;得到的代碼體驗更好&#xff0c;比 vscode…

鴻蒙開發深入淺出01(基本環境搭建、頁面模板與TabBar)

鴻蒙開發深入淺出01&#xff08;基本環境搭建、頁面模板與TabBar&#xff09; 1、效果展示2、下載 DevEco Studio3、創建項目4、新建頁面模板5、更改應用信息6、新建以下頁面7、Index.ets8、真機運行9、圖片資源文件 1、效果展示 2、下載 DevEco Studio 訪問官網根據自己的版本…

自動駕駛泊車算法詳解(一)

自動駕駛泊車算法是自動駕駛技術中的重要組成部分&#xff0c;主要用于實現車輛在復雜場景下的自動泊車功能&#xff08;如垂直泊車、側方位泊車、斜列泊車等&#xff09;。其核心目標是通過感知、規劃和控制技術&#xff0c;使車輛在無人工干預的情況下安全、高效地完成泊車動…

鴻蒙next 點擊穿透實現

點擊穿透可以參考華為開發的保留文章,該章節只能在developer preview版本下查看 點擊穿透 主要的方法是hitTestBehavior // xxx.ets Entry Component struct HitTestBehaviorExample {build() {// outer stackStack() {Button(outer button).onTouch((event) > {console.i…

27.[前端開發-JavaScript基礎]Day04-函數基本使用-遞歸-變量作用域-函數式編程

一、JavaScript函數 1 認識JavaScript函數 程序中的foo、bar、baz 認識函數 函數使用的步驟 2 函數的聲明和調用 聲明和調用函數 函數的參數 有參數的函數練習 函數的返回值 函數的練習 arguments參數&#xff08;JS高級再學習&#xff09; 3 函數的遞歸調用 函數中調用函數…

藍橋杯練習代碼

一、最長公共前綴 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""。 示例 1: 輸入:strs = ["flower","flow","flight"] 輸出:"fl"示例 2: 輸入:strs = ["dog",&q…

添加成對約束后的標簽傳播算法研究:使用Python語言編寫算法,在空手道數據集下驗證算法的準確性,在一定程度上解決非對齊問題

背景&#xff1a; 輔導的過程中遇到了一個比較新穎的問題&#xff0c;下面是我對這個問題的分析和簡要思路介紹。 思路分析&#xff1a; 這算機器學習下面的無監督學習&#xff0c;標簽傳播算法簡稱LPA&#xff0c;傳統的標簽傳播算法會出現非對齊問題&#xff0c;一句話描述就…

鴻蒙開發第4篇__關于在鴻蒙應用中使用Java語言進行設計

本博文很重要 HarmonyOS從 API8 開始不再支持使用Java作為開發語言&#xff0c;未來的新功能將在ArkTS中實現. API 8對應的是HarmonyOS 3.0.0版本。請看下圖&#xff1a; 因此&#xff0c; 讀者如果看到類似《鴻蒙應用程序開發》(2021年版本 清華大學出版計)書 還使用Java語言…

sklearn機器學習 Python代碼通用模板

以下是一個使用 scikit-learn&#xff08;sklearn&#xff09;進行機器學習的通用 Python 代碼模板。這個模板涵蓋了數據加載、預處理、模型訓練、評估和預測的基本流程&#xff0c;適用于常見的機器學習任務。 python # 導入必要的庫 import numpy as np import pandas as …

P9420 [藍橋杯 2023 國 B] 雙子數--最高效的質數篩【埃拉托斯特尼篩法】

P9420 [藍橋杯 2023 國 B] 雙子數 題目 分析代碼 題目 分析 首先&#xff0c;我們如何找到雙子數&#xff1f; 1&#xff09;找到所有質數滿足范圍內的質數&#xff08;即至少質數^2<23333333333333) 我們看見雙子數x的范圍2333<x<23333333333333&#xff0c;又因為…

deepseek 導出導入模型(docker)

前言 實現導出導入deepseek 模型。deepseek 安裝docker下參考 docker 導出模型 實際生產環境建議使用docker-compose.yml進行布局&#xff0c;然后持久化ollama模型數據到本地參考 echo "start ollama" docker start ollama#壓縮容器內文件夾&#xff0c;然后拷貝…

mysql有索引但是查詢沒有使用索引是什么問題

關鍵原因分析 索引選擇性問題 如果 order_id 沒有索引&#xff0c;即使 insert_time 有索引&#xff0c;優化器可能認為先通過 order_id 過濾數據更高效。但由于 order_id 無索引&#xff0c;只能全表掃描后過濾。即使 insert_time 有索引&#xff0c;如果滿足 insert_time >…

【Qt】為程序增加閃退crash報告日志

背景 隨著軟件代碼量的增加&#xff0c;軟件崩潰閃退的肯能行越來越大&#xff0c;其中一些是難以復現的&#xff0c;比如訪問了訪問了非法地址、被操作系統殺死等。 為此&#xff0c;在軟件出現閃退情況時&#xff0c;盡可能多的記錄閃退發生時信息&#xff0c;對排查閃退原…

C#從入門到精通(35)—如何防止winform程序因為誤操作被關閉

前言: 大家好,我是上位機馬工,碩士畢業4年年入40萬,目前在一家自動化公司擔任軟件經理,從事C#上位機軟件開發8年以上!我們在開發的上位機軟件運行起來以后,一般在右上角都有一個關閉按鈕,正常情況下點擊關閉按鈕就能關閉軟件,但是不排除我們不想關閉軟件,但是因為不…

ffmpeg avdevice_register_all 注冊設備的作用

在 FFmpeg 中&#xff0c;avdevice_register_all() 是一個用于注冊所有輸入和輸出設備的函數。它是 FFmpeg 的 libavdevice 模塊的一部分&#xff0c;專門用于處理音頻和視頻的輸入/輸出設備&#xff08;如攝像頭、麥克風、屏幕捕獲等&#xff09;。 以下是對 avdevice_regist…

[RH342]tcpdump

[RH342]tcpdump 1. 題目2. 解題 1. 題目 服務器serverc 和 servera 之間有進程定期發送一個明文密碼,找出它2. 解題 找出通信端口 抓包分析 tcpdump -X -vv port 6644紅框中就是密碼,所以密碼是root123