Linux curl 常用示例

来源:https://www.cnblogs.com/zhanglianghhh/archive/2019/08/10/11330682.html
-Advertisement-
Play Games

本篇文章包含了curl的常用案例使用。 如果想瞭解curl選項的詳細說明,請參考前一篇文章「Linux curl 命令詳解」。 常見網頁訪問示例 基本用法 訪問一個網頁 執行後,相關的網頁信息會列印出來 進度條展示 有時候我們不需要進度表展示,而需要進度條展示。比如:下載文件時。 可以通過 -#, ...


 

本篇文章包含了curl的常用案例使用。

如果想瞭解curl選項的詳細說明,請參考前一篇文章「Linux curl 命令詳解」。

常見網頁訪問示例

基本用法

訪問一個網頁

1 curl https://www.baidu.com

執行後,相關的網頁信息會列印出來

 

進度條展示

有時候我們不需要進度表展示,而需要進度條展示。比如:下載文件時。

可以通過 -#, --progress-bar 選項實現。

1 [root@iZ28xbsfvc4Z 20190713]# curl https://www.baidu.com | head -n1  # 進度表顯示
2   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
3                                  Dload  Upload   Total   Spent    Left  Speed
4 100  2443  100  2443    0     0  11662      0 --:--:-- --:--:-- --:--:-- 11688
5 <!DOCTYPE html>
6 [root@iZ28xbsfvc4Z 20190713]# curl -# https://www.baidu.com | head -n1  # 進度條顯示
7 ######################################################################## 100.0%
8 <!DOCTYPE html>

 

靜默模式與錯誤信息列印

當我們做一些操作時,可能會出現進度表。這時我們可以使用 -s, --silent 靜默模式去掉這些不必要的信息。

如果使用 -s, --silent 時,還需要列印錯誤信息,那麼還需要使用 -S, --show-error 選項。

靜默模式示例

1 [root@iZ28xbsfvc4Z ~]# curl https://www.baidu.com | head -n1
2   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
3                                  Dload  Upload   Total   Spent    Left  Speed
4 100  2443  100  2443    0     0  11874      0 --:--:-- --:--:-- --:--:-- 11859
5 <!DOCTYPE html>
6 [root@iZ28xbsfvc4Z ~]# curl -s https://www.baidu.com | head -n1
7 <!DOCTYPE html>

 

靜默模式結合錯誤信息列印

1 [root@iZ28xbsfvc4Z 20190713]# curl -s https://140.205.16.113/ 
2 [root@iZ28xbsfvc4Z 20190713]# 
3 [root@iZ28xbsfvc4Z 20190713]# curl -sS https://140.205.16.113/ 
4 curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

 

顯示詳細操作信息

使用 -v, --verbose 選項實現。

以 > 開頭的行表示curl發送的”header data”;< 表示curl接收到的通常情況下隱藏的”header data”;而以 * 開頭的行表示curl提供的附加信息。

 1 [root@iZ28xbsfvc4Z 20190712]# curl -v https://www.baidu.com
 2 * About to connect() to www.baidu.com port 443 (#0)
 3 *   Trying 180.101.49.12...
 4 * Connected to www.baidu.com (180.101.49.12) port 443 (#0)
 5 * Initializing NSS with certpath: sql:/etc/pki/nssdb
 6 *   CAfile: /etc/pki/tls/certs/ca-bundle.crt
 7   CApath: none
 8 * SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
 9 * Server certificate:
10 *     subject: CN=baidu.com,O="Beijing Baidu Netcom Science Technology Co., Ltd",OU=service operation department,L=beijing,ST=beijing,C=CN
11 *     start date: May 09 01:22:02 2019 GMT
12 *     expire date: Jun 25 05:31:02 2020 GMT
13 *     common name: baidu.com
14 *     issuer: CN=GlobalSign Organization Validation CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE
15 > GET / HTTP/1.1
16 > User-Agent: curl/7.29.0
17 > Host: www.baidu.com
18 > Accept: */*
19 > 
20 < HTTP/1.1 200 OK
21 < Accept-Ranges: bytes
22 < Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
23 < Connection: Keep-Alive
24 < Content-Length: 2443
25 < Content-Type: text/html
26 < Date: Fri, 12 Jul 2019 08:26:23 GMT
27 < Etag: "588603eb-98b"
28 < Last-Modified: Mon, 23 Jan 2017 13:23:55 GMT
29 < Pragma: no-cache
30 < Server: bfe/1.0.8.18
31 < Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
32 < 
33 <!DOCTYPE html>
34 ………………  # curl 網頁的具體信息

 

指定訪問的請求方法

當然curl預設使用GET方式訪問。使用了 -d, --data <data> 選項,那麼會預設為 POST方法訪問。如果此時還想實現 GET 訪問,那麼可以使用 -G, --get 選項強制curl 使用GET方法訪問。

同時 -X, --request <command> 選項也可以指定訪問方法。

POST請求和數據傳輸

為了抓包查看信息所以使用了 --local-port <num>[-num] 選項,在實際應用中不需要該選項。

 1 [root@iZ28xbsfvc4Z ~]# curl -sv --local-port 9000 -X POST -d 'user=zhang&pwd=123456' http://www.zhangblog.com/2019/06/24/domainexpire/ | head -n1 
 2 ## 或者
 3 [root@iZ28xbsfvc4Z ~]# curl -sv --local-port 9000 -d 'user=zhang&pwd=123456' http://www.zhangblog.com/2019/06/24/domainexpire/ | head -n1
 4 * About to connect() to www.zhangblog.com port 80 (#0)
 5 *   Trying 120.27.48.179...
 6 * Connected to www.zhangblog.com (120.27.48.179) port 80 (#0)
 7 > POST /2019/06/24/domainexpire/ HTTP/1.1  # POST 請求方法
 8 > User-Agent: curl/7.29.0
 9 > Host: www.zhangblog.com
10 > Accept: */*
11 > Content-Length: 21
12 > Content-Type: application/x-www-form-urlencoded
13 > 
14 } [data not shown]
15 * upload completely sent off: 21 out of 21 bytes
16 < HTTP/1.1 405 Not Allowed
17 < Server: nginx/1.14.2
18 < Date: Thu, 18 Jul 2019 07:56:23 GMT
19 < Content-Type: text/html
20 < Content-Length: 173
21 < Connection: keep-alive
22 < 
23 { [data not shown]
24 * Connection #0 to host www.zhangblog.com left intact
25 <html>

 

抓包信息

1 [root@iZ28xbsfvc4Z tcpdump]# tcpdump -i any port 9000 -A -s 0

 

指定請求方法

1 curl -vs -X POST https://www.baidu.com | head -n1

 

1 curl -vs -X PUT https://www.baidu.com | head -n1

 

保存訪問網頁

使用linux的重定向功能保存

1 curl www.baidu.com >> baidu.html

 

使用curl的大O選項

通過 -O, --remote-name 選項實現。

1 [root@iZ28xbsfvc4Z 20190712]# curl -O https://www.baidu.com   # 使用了 -O 選項,必須指定到具體的文件  錯誤使用
2 curl: Remote file name has no length!
3 curl: try 'curl --help' or 'curl --manual' for more information
4 [root@iZ28xbsfvc4Z 20190712]# curl -O https://www.baidu.com/index.html   # 使用了 -O 選項,必須指定到具體的文件  正確使用
5   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
6                                  Dload  Upload   Total   Spent    Left  Speed
7 100  2443  100  2443    0     0  13289      0 --:--:-- --:--:-- --:--:-- 13349

 

使用curl的小o選項

通過 -o, --output <file> 選項實現。

 1 [root@iZ28xbsfvc4Z 20190713]# curl -o sina.txt https://www.sina.com.cn/   # 單個操作
 2 [root@iZ28xbsfvc4Z 20190713]# ll
 3 -rw-r--r-- 1 root root   154 Jul 13 21:06 sina.txt
 4 [root@iZ28xbsfvc4Z 20190703]# curl "http://www.{baidu,douban}.com" -o "site_#1.txt"  # 批量操作,註意curl 的地址需要用引號括起來
 5 [1/2]: http://www.baidu.com --> site_baidu.txt
 6   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
 7                                  Dload  Upload   Total   Spent    Left  Speed
 8 100  2381  100  2381    0     0  46045      0 --:--:-- --:--:-- --:--:-- 46686
 9 
10 [2/2]: http://www.douban.com --> site_douban.txt
11 100   162  100   162    0     0   3173      0 --:--:-- --:--:-- --:--:--  3173
12 [root@iZ28xbsfvc4Z 20190703]# 
13 [root@iZ28xbsfvc4Z 20190703]# ll
14 total 220
15 -rw-r--r-- 1 root root  2381 Jul  4 16:53 site_baidu.txt
16 -rw-r--r-- 1 root root   162 Jul  4 16:53 site_douban.txt

 

允許不安全訪問

當我們使用curl進行https訪問訪問時,如果SSL證書是我們自簽發的證書,那麼這個時候需要使用 -k, --insecure 選項,允許不安全的訪問。

 1 [root@iZ28xbsfvc4Z ~]# curl https://140.205.16.113/  # 被拒絕
 2 curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
 3 [root@iZ28xbsfvc4Z ~]# 
 4 [root@iZ28xbsfvc4Z ~]# curl -k https://140.205.16.113/  # 允許執行不安全的證書連接
 5 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 6 <html>
 7 <head><title>403 Forbidden</title></head>
 8 <body bgcolor="white">
 9 <h1>403 Forbidden</h1>
10 <p>You don't have permission to access the URL on this server.<hr/>Powered by Tengine</body>
11 </html>

 

獲取HTTP響應狀態碼

在腳本中,這是很常見的測試網站是否正常的用法。

通過 -w, --write-out <format> 選項實現。

1 [root@iZ28xbsfvc4Z 20190713]# curl -o /dev/null -s -w %{http_code} https://baidu.com
2 302[root@iZ28xbsfvc4Z 20190713]# 
3 [root@iZ28xbsfvc4Z 20190713]# 
4 [root@iZ28xbsfvc4Z 20190713]# curl -o /dev/null -s -w %{http_code} https://www.baidu.com
5 200[root@iZ28xbsfvc4Z 20190713]#

 

指定proxy伺服器以及其埠

很多時候上網需要用到代理伺服器(比如是使用代理伺服器上網或者因為使用curl別人網站而被別人屏蔽IP地址的時候),幸運的是curl通過使用 -x, --proxy <[protocol://][user:password@]proxyhost[:port]> 選項來支持設置代理。

1 curl -x 192.168.100.100:1080 https://www.baidu.com

 

模仿瀏覽器訪問

有些網站需要使用特定的瀏覽器去訪問他們,有些還需要使用某些特定的瀏覽器版本。我們可以通過 -A, --user-agent <agent string> 或者 -H, --header <header> 選項實現模擬瀏覽器訪問。

1 curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/75.0.3770.999" http://www.zhangblog.com/2019/06/24/domainexpire/ 
2 或者
3 curl -H 'User-Agent: Mozilla/5.0' http://www.zhangblog.com/2019/06/24/domainexpire/

 

偽造referer(盜鏈)

有些網站的網頁對http訪問的鏈接來源做了訪問限制,這些限制幾乎都是通過referer來實現的。

比如:要求是先訪問首頁,然後再訪問首頁中的郵箱頁面,這時訪問郵箱的referer地址就是訪問首頁成功後的頁面地址。如果伺服器發現對郵箱頁面訪問的referer地址不是首頁的地址,就斷定那是個盜連了。

可以通過 -e, --referer 或則 -H, --header <header> 實現偽造 referer 。

1 curl -e 'https://www.baidu.com' http://www.zhangblog.com/2019/06/24/domainexpire/
2 或者
3 curl -H 'Referer: https://www.baidu.com' http://www.zhangblog.com/2019/06/24/domainexpire/

 

構造HTTP請求頭

可以通過 -H, --header <header> 實現構造http請求頭。

1 curl -H 'Connection: keep-alive' -H 'Referer: https://sina.com.cn' -H 'User-Agent: Mozilla/1.0' http://www.zhangblog.com/2019/06/24/domainexpire/

 

保存響應頭信息

可以通過 -D, --dump-header <file> 選項實現。

1 [root@iZ28xbsfvc4Z 20190703]# curl -D baidu_header.info www.baidu.com 
2 ………………
3 [root@iZ28xbsfvc4Z 20190703]# ll
4 total 4
5 -rw-r--r-- 1 root root 400 Jul  3 10:11 baidu_header.info  # 生成的頭文件

 

限時訪問

--connect-timeout <seconds> 連接服務端的超時時間。這隻限制了連接階段,一旦curl連接了此選項就不再使用了。

1 # 當前 https://www.zhangXX.com 是國外伺服器,訪問受限
2 [root@iZ28xbsfvc4Z ~]# curl --connect-timeout 10 https://www.zhangXX.com | head
3   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
4                                  Dload  Upload   Total   Spent    Left  Speed
5   0     0    0     0    0     0      0      0 --:--:--  0:00:10 --:--:--     0
6 curl: (28) Connection timed out after 10001 milliseconds

 

-m, --max-time <seconds> 允許整個操作花費的最大時間(以秒為單位)。這對於防止由於網路或鏈接變慢而導致批處理作業掛起數小時非常有用。

 1 [root@iZ28xbsfvc4Z ~]# curl -m 10 --limit-rate 5 http://www.baidu.com/ | head  # 超過10秒後,斷開連接
 2   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
 3                                  Dload  Upload   Total   Spent    Left  Speed
 4   2  2381    2    50    0     0      4      0  0:09:55  0:00:10  0:09:45     4
 5 curl: (28) Operation timed out after 10103 milliseconds with 50 out of 2381 bytes received
 6 <!DOCTYPE html>
 7 <!--STATUS OK--><html> <head><met
 8 ### 或
 9 [root@iZ28xbsfvc4Z ~]# curl -m 10 https://www.zhangXX.com | head   # 超過10秒後,斷開連接
10   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
11                                  Dload  Upload   Total   Spent    Left  Speed
12   0     0    0     0    0     0      0      0 --:--:--  0:00:10 --:--:--     0
13 curl: (28) Connection timed out after 10001 milliseconds

 

顯示抓取錯誤

當我們請求訪問失敗時或者沒有該網頁時,網站一般都會給出一個錯誤的提示頁面。

如果我們不需要這個錯誤頁面,只想得到簡潔的錯誤信息。那麼可以通過 -f, --fail 選項實現。

 1 [root@iZ28xbsfvc4Z 20190713]# curl http://www.zhangblog.com/201912312
 2 <html>
 3 <head><title>404 Not Found</title></head>
 4 <body bgcolor="white">
 5 <center><h1>404 Not Found</h1></center>
 6 <hr><center>nginx/1.14.2</center>
 7 </body>
 8 </html>
 9 [root@iZ28xbsfvc4Z 20190713]# curl -f http://www.zhangblog.com/201912312  # 得到更簡潔的錯誤信息
10 curl: (22) The requested URL returned error: 404 Not Found

 

表單登錄與cookie使用

參見:「Linux curl 表單登錄或提交與cookie使用

 

文件上傳與下載

涉及 FTP 服務,簡單快速搭建可參考:《CentOS7下安裝FTP服務》「https://www.cnblogs.com/zhi-leaf/p/5983550.html」

文件下載

網頁文件下載

1 # 以進度條展示,而不是進度表展示
2 [root@iZ28xbsfvc4Z 20190715]# curl -# -o tmp.data2 http://www.zhangblog.com/uploads/tmp/tmp.data
3 ######################################################################## 100.0%

 

FTP文件下載

說明1:其中 ftp1 用戶是ftp服務端的賬號,具體家目錄是:/mnt/ftp1

說明2:當我們使用 curl 通過 FTP 進行下載時,後面跟的路徑都是:當前使用的 ftp 賬號家目錄為基礎的相對路徑,然後找到的目標文件。

示例1

1 # 其中 tmp.data 的絕對路徑是:/mnt/ftp1/tmpdata/tmp.data ;ftp1 賬號的家目錄是:/mnt/ftp1
2 # 說明:/tmpdata/tmp.data 這個路徑是針對 ftp1 賬號的家目錄而言的
3 [yun@nginx_proxy01 20190715]$ curl -O ftp://ftp1:[email protected]:21/tmpdata/tmp.data  
4 # 或者
5 [yun@nginx_proxy01 20190715]$ curl -O -u ftp1:123456 ftp://172.16.1.195:21/tmpdata/tmp.data
6   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
7                                  Dload  Upload   Total   Spent    Left  Speed
8 100 2048M  100 2048M    0     0  39.5M      0  0:00:51  0:00:51 --:--:--  143M

 

示例2

1 # 其中 nginx-1.14.2.tar.gz 的絕對路徑是:/tmp/nginx-1.14.2.tar.gz ;ftp1 賬號的家目錄是:/mnt/ftp1
2 # 說明:/../../tmp/nginx-1.14.2.tar.gz 這個路徑是針對 ftp1 賬號的家目錄而言的
3 [yun@nginx_proxy01 20190715]$ curl -O ftp://ftp1:[email protected]:21/../../tmp/nginx-1.14.2.tar.gz  
4 # 或者
5 [yun@nginx_proxy01 20190715]$ curl -O -u ftp1:123456 ftp://172.16.1.195:21/../../tmp/nginx-1.14.2.tar.gz
6   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
7                                  Dload  Upload   Total   Spent    Left  Speed
8 100  991k  100  991k    0     0  5910k      0 --:--:-- --:--:-- --:--:-- 5937k

 

文件上傳

FTP文件上傳

可以通過 -T, --upload-file <file> 選項實現。

說明1:其中 ftp1 用戶是ftp服務端的賬號,具體家目錄是:/mnt/ftp1

1 # 其中 tmp_client.data 是客戶端本地文件; 
2 # /tmpdata/ 這個路徑是針對 ftp1 賬號的家目錄而言的,且上傳時該目錄必須是存在的,否則上傳失敗。
3 # 因此上傳後文件在ftp服務端的絕對路徑是:/mnt/ftp1/tmpdata/tmp_client.data
4 [yun@nginx_proxy01 20190715]$ curl -T tmp_client.data ftp://ftp1:[email protected]:21/tmpdata/
5 # 或者
6 [yun@nginx_proxy01 20190715]$ curl -T tmp_client.data -u ftp1:123456 ftp://172.16.1.195:21/tmpdata/
7   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
8                                  Dload  Upload   Total   Spent    Left  Speed
9 100 2048M    0     0  100 2048M      0  95.4M  0:00:21  0:00:21 --:--:-- 49.3M

 

斷點續傳

使用 -C, --continue-at <offset> 選項實現。其中使用 “-C -“「註意有空格和無空格的情況」,告訴curl自動找出在哪裡/如何恢復傳輸。

網頁端斷點續傳下載

1 curl -C - -o tmp.data http://www.zhangblog.com/uploads/tmp/tmp.data   # 下載一個 2G 的文件

 

FTP斷點續傳下載

細節就不多說了,可參見上面的「FTP文件下載」

1 curl -C - -o tmp.data1 ftp://ftp1:[email protected]:21/tmpdata/tmp.data  # 下載一個 2G 的文件
2 # 或則
3 curl -C - -o tmp.data1 -u ftp1:123456 ftp://172.16.1.195:21/tmpdata/tmp.data  # 下載一個 2G 的文件

 

分段下載

有時文件比較大,或者難以迅速傳輸,而利用分段傳輸,可以實現穩定、高效並且有保障的傳輸,更具有實用性,同時容易對差錯文件進行更正。

可使用 -r, --range <range> 選項實現。

如下示例使用了同一張圖片,大小為 18196 位元組。

網頁端分段下載

分段下載

 1 [root@iZ28xbsfvc4Z 20190715]# curl -I http://www.zhangblog.com/uploads/hexo/00.jpg   # 查看文件大小
 2 HTTP/1.1 200 OK
 3 Server: nginx/1.14.2
 4 Date: Mon, 15 Jul 2019 03:23:44 GMT
 5 Content-Type: image/jpeg
 6 Content-Length: 18196   # 文件大小
 7 Last-Modified: Fri, 05 Jul 2019 08:04:58 GMT
 8 Connection: keep-alive
 9 ETag: "5d1f04aa-4714"
10 Accept-Ranges: bytes
11 ### 分段下載一個文件
12 [root@iZ28xbsfvc4Z 20190715]# curl -r 0-499   -o 00-jpg.part1 http://www.zhangblog.com/uploads/hexo/00.jpg
13 [root@iZ28xbsfvc4Z 20190715]# curl -r 500-999 -o 00-jpg.part2 http://www.zhangblog.com/uploads/hexo/00.jpg
14 [root@iZ28xbsfvc4Z 20190715]# curl -r 1000-   -o 00-jpg.part3 http://www.zhangblog.com/uploads/hexo/00.jpg

 

查看下載文件

1 [root@iZ28xbsfvc4Z 20190715]# ll
2 total 36
3 -rw-r--r-- 1 root root   500 Jul 15 11:25 00-jpg.part1
4 -rw-r--r-- 1 root root   500 Jul 15 11:25 00-jpg.part2
5 -rw-r--r-- 1 root root 17196 Jul 15 11:26 00-jpg.part3

 

文件合併

1 [root@iZ28xbsfvc4Z 20190715]# cat 00-jpg.part1 00-jpg.part2 00-jpg.part3 > 00.jpg
2 [root@iZ28xbsfvc4Z 20190715]# ll 00.jpg
3 total 56
4 -rw-r--r-- 1 root root 18196 Jul 15 11:29 00.jpg

 

FTP分段下載

分段下載

1 [yun@nginx_proxy01 20190715]$ curl -r 0-499   -o 00-jpg.part1 ftp://ftp1:[email protected]:21/tmpdata/00.jpg
2 [yun@nginx_proxy01 20190715]$ curl -r 500-999 -o 00-jpg.part2 ftp://ftp1:[email protected]:21/tmpdata/00.jpg
3 [yun@nginx_proxy01 20190715]$ curl -r 1000-   -o 00-jpg.part3 ftp://ftp1:[email protected]:21/tmpdata/00.jpg

 

查看下載文件

1 [yun@nginx_proxy01 20190715]$ ll 00-jpg.part*
2 -rw-rw-r-- 1 yun yun   500 Jul 15 17:59 00-jpg.part1
3 -rw-rw-r-- 1 yun yun   500 Jul 15 18:00 00-jpg.part2
4 -rw-rw-r-- 1 yun yun 17196 Jul 15 18:00 00-jpg.part3

 

文件合併

1 [yun@nginx_proxy01 20190715]$ cat 00-jpg.part1 00-jpg.part2 00-jpg.part3 > 00.jpg
2 [yun@nginx_proxy01 20190715]$ ll 00.jpg 
3 -rw-rw-r-- 1 yun yun 18196 Jul 15 18:02 00.jpg

 

推薦閱讀

Linux curl 命令詳解

Linux curl 常用示例

Linux curl 表單登錄或提交與cookie使用

 


如果覺得不錯就點個贊唄 (-^O^-) !

———END———-

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一.概述 在asp.net core 中可以用WebSocket 或asp.net core SignalR來開發即時通迅。在項目中由於開發前後端分離,對於SignalR前端技術人員不想依賴juqery和SignalR.js包,後端確定使用WebSocket 來實現。對於asp.net core有自 ...
  • Serilog 自定義 Enricher 來增加記錄的信息 Intro Serilog 是 .net 裡面非常不錯的記錄日誌的庫,結構化日誌記錄,而且配置起來很方便,自定義擴展也很方便 Serilog is a diagnostic logging library for .NET applicat ...
  • 通過使用/etc/passwd 文件,getent命令,compgen命令這三種方法查看系統中用戶的信息。 Linux 系統中用戶信息存放在/etc/passwd文件中。 這是一個包含每個用戶基本信息的文本文件。當我們在系統中創建一個用戶,新用戶的詳細信息就會被添加到這個文件中。 /etc/pass ...
  • 在linux上編輯文件的時候,明明是使用的root登錄的,可是這種至高無上的許可權在按下i的時候被那串紅色錯誤褻瀆了W10: Warning: Changing a readonly file。 困擾兩天後,終於靈光一閃,奇跡的解決了這個問題,那就是: 修改完成後使用:wq! 強制保存退出!!!! ...
  • 一、格式化 第一種寫法 mkfs.文件系統 [分區名稱(設備文件路徑)] 例如:對sdb硬碟的第一個分區以ext3文件系統進行格式化 第二種寫法 mkfs -t 文件系統 [分區名稱(設備文件路徑)] 註意:(1)擴展分區不可以格式化,只有主分區和邏輯分區可以格式化 (2)GPT分區不可以通過fdi ...
  • 最近突然忘記了 滑動視窗的原理,在網上找到了比較好的視頻,現在在這裡同大家分享: 註:反正進程間切換 視頻鏈接: https://www.youtube.com/watch?v=R6ArbkVj-N8 資源來源自網路,如果對您有幫助請點擊推薦,如果有其他的任何問題,歡迎大家留言!cnblogs.co ...
  • 現有的測試工具分為三類: 合成測試程式根據統計的真實負載發生規律,如請求的讀寫比例,大小,頻率和分佈等信息。建立響應的io存取模型。在測試時產生符合存取模型的io請求序列。發送給存儲系統。這類程式包括 IOMeter,IOZone 和 Bonnie++。 使用基準測試集測試電腦系統的性能,一直是有 ...
  • 在不用代碼調從而啟動某個軟體時,windows系統下,通常我們會用到cmd命令行來啟動。本文將介紹 cmd常見的命令行啟動參數。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...