隨筆一

来源:https://www.cnblogs.com/apple-ship/archive/2023/06/12/17473878.html
-Advertisement-
Play Games

在國內訪問國外伺服器(如github)會有卡頓、無法載入等問題,提供兩種解決方案: 1.查看github的IP地址並修改Hosts windows鍵+R,打開cmd(或windows鍵+X,打開Windows PowerShell),輸入指令:ping github.com 獲取IP地址,之後打開文 ...


一、開源許可證 GPL、LGPL,BSD、MIT、Mozilla和Apache的區別

下麵先簡單介紹上述協議 :   1.GPL   我們很熟悉的Linux就是採用瞭GPL。GPL協議和BSD, Apache Licence等鼓勵代碼重用的許可很不一樣。GPL的出發點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改後和衍生的代碼做為閉源的商業軟體發佈和銷售。這也就是為什麼我們能用免費的各種linux,包括商業公司的linux和linux上各種各樣的由個人,組織,以及商業軟體公司開發的免費軟體瞭。   GPL協議的主要內容是只要在一個軟體中使用(”使用”指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟體產品必須也採用GPL協議,旣必須也是開源和免費。這就是所謂的”傳染性”。GPL協議的產品作為一個單獨的產品使用沒有任何問題,還可以享受免費的優勢。   由於GPL嚴格要求使用瞭GPL類庫的軟體產品必須使用GPL協議,對於使用GPL協議的開源代碼,商業軟體或者對代碼有保密要求的部門就不適合集成/採用作為類庫和二次開發的基礎。   其牠細節如再發佈的時候需要伴隨GPL協議等和BSD/Apache等類似。   2.LGPL LGPL是GPL的一個為主要為類庫使用設計的開源協議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟體必須採用GPL協議不衕。LGPL 允許商業軟體通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟體的代碼。這使得採用LGPL協議的開源代碼可以被商業軟體作為類庫引用併發布和銷售。   但是如果修改LGPL協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須採用LGPL協議。因此LGPL協議的開源代碼很適合作為第三方類庫被商業軟體引用,但不適合希望以LGPL協議代碼為基礎,通過修改和衍生的方式做二次開發的商業軟體採用。   GPL/LGPL都保障原作者的知識產權,避免有人利用開源代碼複製並開發類似的產品   3.BSD開源協議 BSD開源協議是一個給於用戶很大自由的協議。基本上使用者可以”為所欲為”,可以自由的使用,修改源代碼,也可以將修改後的代碼作為開源或者專有軟體再發佈。   但”為所欲為”的前提當你發佈使用瞭BSD協議的代碼,或則以BSD協議代碼為基礎做二次開發自己的產品時,需要滿足三個條件:   如果再發佈的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。 如果再發佈的只是二進位類庫/軟體,則需要在類庫/軟體的文檔和版權聲明中包含原來代碼中的BSD協議。 不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。   BSD 代碼鼓勵代碼共用,但需要尊重代碼作者的著作權。BSD由於允許使用者修改和重新發佈代碼,也允許使用或在BSD代碼上開發商業軟體發佈和銷售,因此是對商業集成很友好的協議。而很多的公司企業在選用開源產品的時候都首選BSD協議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發。     4.MIT MIT是和BSD一樣寬範的許可協議,作者只想保留版權,而無任何其他瞭限制.也就是說,你必須在你的發行版里包含原許可協議的聲明,無論你是以二進位發佈的還是以源代碼發佈的.       5.Mozilla MPL是The Mozilla Public License的簡寫,是1998年初Netscape的 Mozilla小組為其開源軟體項目設計的軟體許可證。MPL許可證出現的最重要原因就是,Netscape公司認為GPL許可證沒有很好地平衡開發者對源代碼的需求和他們利用源代碼獲得的利益。衕著名的GPL許可證和BSD許可證相比,MPL在許多權利與義務的約定方面與牠們相衕(因為都是符合OSIA 認定的開源軟體許可證)。但是,相比而言MPL還有以下幾個顯著的不衕之處:   ◆ MPL雖然要求對於經MPL許可證發佈的源代碼的修改也要以MPL許可證的方式再許可出來,以保證其他人可以在MPL的條款下共用源代碼。但是,在MPL 許可證中對“發佈”的定義是“以源代碼方式發佈的文件”,這就意味著MPL允許一個企業在自己已有的源代碼庫上加一個介面,除瞭介面程式的源代碼以MPL 許可證的形式對外許可外,源代碼庫中的源代碼就可以不用MPL許可證的方式強制對外許可。這些,就為借鑒別人的源代碼用做自己商業軟體開發的行為留瞭一個豁口。 ◆ MPL許可證第三條第7款中允許被許可人將經過MPL許可證獲得的源代碼衕自己其他類型的代碼混合得到自己的軟體程式。 ◆ 對軟體專利的態度,MPL許可證不像GPL許可證那樣明確表示反對軟體專利,但是卻明確要求源代碼的提供者不能提供已經受專利保護的源代碼(除非他本人是專利權人,並書面向公眾免費許可這些源代碼),也不能在將這些源代碼以開放源代碼許可證形式許可後再去申請與這些源代碼有關的專利。 ◆ 對源代碼的定義 而在MPL(1.1版本)許可證中,對源代碼的定義是:“源代碼指的是對作品進行修改最優先擇取的形式,牠包括:所有模塊的所有源程式,加上有關的介面的定義,加上控制可執行作品的安裝和編譯的‘原本’(原文為‘Script’),或者不是與初始源代碼顯著不衕的源代碼就是被源代碼貢獻者選擇的從公共領域可以得到的程式代碼。” ◆ MPL許可證第3條有專門的一款是關於對源代碼修改進行描述的規定,就是要求所有再發佈者都得有一個專門的文件就對源代碼程式修改的時間和修改的方式有描述。   6.Apache Licence 2.0 Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,衕樣鼓勵代碼共用和尊重原作者的著作權,衕樣允許代碼修改,再發佈(作為開源或商業軟體)。需要滿足的條件也和BSD類似:   需要給代碼的用戶一份Apache Licence 如果你修改瞭代碼,需要再被修改的文件中說明。 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。 如果再發佈的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。   Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發佈/銷售。   總結一張相當直觀清晰的圖來劃分各種協議:開源許可證GPL、LGPL,BSD、MIT、Mozilla和Apache的區別

 

二、虛擬機環境搭建及安裝

 

虛擬機平臺:VMware® Workstation 16 Pro 鏡像:Ubuntu-22.04.1   1.針對Ubuntu-22.04創建虛擬機環境   0   0   0   0   0   2.安裝Ubuntu系統 1)選擇語言 0   2)不升級,繼續使用TLS版本 0   3)佈局選擇預設即可 0   4)預設選擇即可 0   5)網路方面預設即可 0   6)未使用代理,跳過 0   7)自定義分區 0   0   8)設置主機名並新建用戶 0   9)按需安裝SSH包 0   10)軟體包安裝,預設即可 0   11)靜待安裝 0   初始軟體安裝完成後,重啟 0   12)安裝完成,可以愉快進行實驗了 0  

三、Linux中man的使用方法

man 是一個 Linux 命令行實用程式,用於顯示 linux 命令、系統調用、庫函數等的幫助手冊。 對於 Linux 發行版來說,man 是標準配置,任何一個最小系統均包含了 man 命令(即,man-db 包總是被預裝的),但手冊頁的文檔內容部分則不一定了,根據實際情況進行選裝。   man文檔分類: 1 一般用戶命令(程式) 用戶可以從 shell 中執行的命令。 2 系統調用命令 包裝內核執行的操作的函數。 3 庫函數調用 除了系統調用包裝器(大多數 libc函數)之外的所有庫函數。 4 特殊的文件和驅動程式(設備) /dev中的文件允許通過內核訪問設備。 5 文件格式和配置文件 描述了各種人類可讀的文件格式和配置文件。 6 游戲和屏保 系統上可用的游戲和有趣的小程式。 7 概述、約定和雜項 各種主題、約定和協議、字元集標準、標準文件系統佈局和其他雜項的概述或描述。 8 系統管理命令和守護進程 像mount(8)這樣的命令,其中很多只有 root 可以執行     語法 man(選項)(參數) 
-a:在所有的man幫助手冊中搜索;

-f:等價於whatis指令,顯示給定關鍵字的簡短描述信息;

-P:指定內容時使用分頁程式;

-M:指定man手冊搜索的路徑。
  尖括弧 “<>” 一般用於表示必選項或者參數的占位符,實際使用時需要替換成具體的值。 方括弧 “[]” 一般用於表示可選項或者參數的占位符,實際使用時可以選擇是否包含該選項或者參數。 大括弧 “{}” 一般用於表示一組選項或者參數,只能從中選擇一個使用,類似於 “或” 的關係。 括弧 “()” 一般用於表示一組命令或者參數,通常用於表達命令的執行順序或者優先順序。 豎線 “|” 一般用於表示多個選項或者參數之間的 “或” 關係,只能選擇其中一個使用。  

man命令使用案例

1.直接查看手冊

# man top

 

2.一次性查閱所有章節

man -a top

 

3.添加-aw參數,找到可以被查詢的章節

[sein@linuxprobe ~]$ man -aw top
/usr/share/man/man1/top.1.gz
[sein@linuxprobe ~]$ 

  

四、fstab文件詳解

Linux 下有一個配置檔案 /etc/fstab,它的作用是設定硬碟分區或其儲存裝置,在開機時掛載點及如何掛載等選項。 跟 Linux 其他配置文件一樣,/etc/fstab 是一個純文本檔,只要有 root 許可權,可以用任何文本編輯器開啟及修改, 基於每台電腦的硬碟配置及掛載點,所以 /etc/fstab 的設定都有所不同,但裡面的格式都是一樣的,例如以下是我的 Redhat 8 的 /etc/fstab 檔內容:
# /etc/fstab
# Created by anaconda on Tue May 24 01:34:52 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=5fa54d8b-adfc-4d8f-941b-bd8baf03ab4f /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
  /etc/fstab 每一行代表一個分區或儲存裝置,每行分為 6 欄數據,它們的內容分別是: 第一欄: 分區或儲存裝置的路徑。 第二欄: 分區或儲存裝置的掛載點。 第三欄: 分區或儲存裝置的文件系統類型。 第四欄: 掛載時要使用的掛載參數。 第五欄: dump 會根據這個設定決定是否需要備份,一般上設定為 0, 即不備份;1 為每日備份;2 為隔日備份。 第六欄: fsck 會根據這個設定,決定在開機自檢或者不正常關機後,檢查文件系統的順序。根目錄要設定成 1, 其他分割區設定成 2, 如果設定成 0, 則不會作 fsck 檢查。

五、Linux中FHS結構

Filesystem Hierarchy Standard(FHS)文件系統層次結構標准定義了Linux發行版中的目錄結構和目錄內容。  

目錄結構

在FHS中,所有文件和目錄都顯示在根目錄下,即使它們存儲在不同的物理或虛擬設備上。如果安裝了某些子系統(如X Window System),則某些目錄僅存在於特定系統上。                                             樹狀目錄結構:

 

以下是對這些目錄的解釋:
  • /bin:
bin 是 Binaries (二進位文件) 的縮寫, 存放單用戶模式下還可以操作的命令。
  • /boot:
這裡存放的是啟動 Linux 時使用的一些核心文件,內核、開機菜單以及所需的配置文件,包括一些連接文件以及鏡像文件。
  • /dev :
dev 是 Device(設備) 的縮寫, 該目錄下存放的是 Linux 的外部設備,在 Linux 中訪問設備的方式和訪問文件的方式是相同的。
  • /etc:
etc 是 Etcetera(等等) 的縮寫,這個目錄用來存放所有的系統管理所需要的配置文件和子目錄,比如操作系統的版本、硬碟分區信息、伺服器的ip、指定哪些程式隨系統啟動/etc/init.d、設置哪些程式定時運行/etc/crontab等等,用戶安裝的各種程式也會在/etc下麵有文件夾存放配置文件,如/etc/ssh、/etc/mysql、/etc/apt等等 比較重要文件:/etc/inittab,/etc/fstab,/etc/init.d,/etc/X11,/etc/sysconfig,/etc/xinetd.d
  • /home:
用戶的主目錄,在 Linux 中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的,如上圖中的 alice、bob 和 eve。
  • /lib:
lib 是 Library(庫) 的縮寫這個目錄里存放著系統最基本的動態連接共用庫,其作用類似於 Windows 里的 DLL 文件。幾乎所有的應用程式(/bin與/sbin)都需要用到這些共用庫。
  • /lost+found:
這個目錄一般情況下是空的,當文件系統發生錯誤時(例如系統非法關機)後,將一些丟失的文件片段存放在這裡。
  • /media:
linux 系統會自動識別一些設備,例如U盤、光碟機等等,當識別後,Linux 會把識別的設備掛載到這個目錄下,以用戶名為文件夾分組存放
  • /mnt:
系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光碟機掛載在 /mnt/ 上,然後進入該目錄就可以查看光碟機里的內容了。
  • /opt:
opt 是 optional(可選) 的縮寫,這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。一般情況下,我們可以把tomcat等都安裝到這裡。
  • /proc:
proc 是 Processes(進程) 的縮寫,/proc 是一種偽文件系統(也即虛擬文件系統),存儲的是當前內核運行狀態的一系列特殊文件,這個目錄是一個虛擬的目錄,它是系統記憶體的映射(不占用磁碟空間),我們可以通過直接訪問這個目錄來獲取系統信息。(監控軟體一般通過讀取改文件夾信息獲取數據)
  • /root:
該目錄為系統管理員,也稱作超級許可權者的用戶主目錄。
  • /sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超級用戶的二進位文件)
  • /selinux:
 這個目錄是 Redhat/CentOS 所特有的目錄,Selinux 是一個安全機制,類似於 windows 的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。
  • /srv:
 該目錄存放一些服務啟動之後需要提取的數據,如 www 服務需要訪問的網頁數據存放在 /srv/www 內
  • /sys:
這是 Linux2.6 內核的一個很大的變化。該目錄下安裝了 2.6 內核中新出現的一個文件系統 sysfs 。 sysfs 文件系統集成了下麵3種文件系統的信息:針對進程信息的 proc 文件系統、針對設備的 devfs 文件系統以及針對偽終端的 devpts 文件系統。 該文件系統是內核設備樹的一個直觀反映。 當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。
  • /tmp:
tmp 是 temporary(臨時) 的縮寫這個目錄是用來存放一些臨時文件的,任何人都可以訪問,重要數據不可放置在此目錄下
  • /usr:
 usr 是 unix shared resources(共用資源) 的縮寫,這是一個非常重要的目錄,用戶的很多應用程式和文件都放在這個目錄下,類似於 windows 下的 program files 目錄。
  • /usr/bin:
系統用戶使用的應用程式。
  • /usr/sbin:
超級用戶使用的比較高級的管理程式和系統守護程式,系統開機時不會使用到的軟體,命令或者腳本。
  • /usr/src:
內核源代碼預設的放置目錄。
  • /usr/share:
幫助與說明文件,也可以存放共用數據。
  • /usr/lib:
存放不能直接運行的,卻是許多程式運行所必需的一些函數庫文件
  • /usr/local:
存放用戶自行安裝的軟體。
  • /usr/share/doc:
系統說明文件存放目錄。  
  • /usr/include:
linux下開發和編譯應用程式所需要的頭文件
  • /usr/man:
幫助文檔  
  • /usr/src:
源代碼,linux內核的源代碼就放在/usr/src/linux里  
  • /usr/local/bin:
本地增加的命令  
  • /usr/local/lib:
本地增加的庫 var 是 variable(變數) 的縮寫,這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件
  • /run:
是一個臨時文件系統,存儲系統啟動以來的信息。當系統重啟時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。 在 Linux 系統中,有幾個目錄是比較重要的,平時需要註意不要誤刪除或者隨意更改內部文件。 /etc: 上邊也提到了,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啟動。 /bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在 /bin/ls 目錄下的。 值得提出的是 /bin、/usr/bin 是給系統用戶使用的指令(除 root 外的通用用戶),而/sbin, /usr/sbin 則是給 root 使用的指令。 /var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在 /var/log 目錄下,另外 mail 的預設放置也是在這裡。  

六、文件管理,用戶管理,組用戶,許可權管理相關命令

文件管理

touch命令用於修改文件或者目錄的時間屬性,包括存取時間和更改時間。若文件不存在,系統會建立一個新的文件。
touch [-acfm][-d<日期時間>][-r<參考文件或目錄>] [-t<日期時間>][--help][--version][文件或目錄…]
$ touch file #創建一個名為“file”的新的空白文件

 

rm命令用於刪除一個文件或者目錄,rmdir用於刪除空目錄
$ rm file            #刪除一個名為“file”的新的文件

$ rm -f file         #強制刪除一個名為“file”的文件

$ rm -rf file        #強制刪除一個名為“file”的文件夾,包含子文件夾及文件

$ rmdir file         #刪除一個名為“file”的空的文件夾

 

文件查看

cat命令用於連接文件並列印到標準輸出設備上。

$ cat -n textfile1                        #查看textfile1 的文檔內容

$ cat -n textfile1 > textfile2        #把 textfile1 的文檔內容加上行號後輸入 textfile2 這個文檔里:    


head 命令可用於查看文件的開頭部分的內容,有一個常用的參數 -n 用於顯示行數,預設為 10,即顯示 10 行的內容。

$ head -n 5 runoob_notes.log     #notes.log 文件的前 5 行


more 命令類似 cat ,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與 vi 相似),使用中的說明文件,請按 h

$ more -c -10 anaconda-ks.cfg    #先進行清屏操作,隨後以每次10行內容的格式顯示指定的文本文件內容
less 與 more 類似,less 可以隨意瀏覽文件,支持翻頁和搜索,支持向上翻頁和向下翻頁。 $ less log2013.log #查看文件 log2013.log
head 命令可用於查看文件的開頭部分的內容,有一個常用的參數 -n 用於顯示行數,預設為 10,即顯示 10 行的內容。 $ head -n 5 runoob_notes.log #查看文件 runoob_notes.log前5行
tail 命令可用於查看文件的開頭部分的內容,有一個常用的參數 -n 用於顯示行數,預設為 10,即顯示 10 行的內容。 $ tail -n 5 runoob_notes.log #查看文件 runoob_notes.log最後5行

 

用戶管理

useradd命令用於創建新的用戶賬戶,語法格式為“useradd [參數] 用戶名”

$ useradd cool                #創建一個名稱為cool的用戶
$ id cool                     #查看用戶cool的信息


userdel命令用於刪除已有的用戶賬戶,語法格式為“userdel [參數] 用戶名”

$ userdel cool             #刪除名稱為cool的用戶
$ userdel -rf cool         #強制刪除名稱為cool的用戶,同時刪除用戶家目錄


usermod命令用於修改用戶的屬性,語法格式為“usermod [參數] 用戶名”。

$ usermod -G nicht,abc sein       #變更用戶sein的擴展用戶組
$ usermod -g nicht sein           #變更用戶sein的所屬用戶組
$ usermod -L sein                 #鎖定用戶sein,禁止登錄
$ usermod -U sein                 #解鎖用戶sein,允許登錄
            

  

群組管理

groupadd 命令用於創建一個新的工作組,語法格式為“groupadd [參數] 群組名”

#groupadd -g 335 apple    #創建一個組 ID(GID)是 335 的群組


groupdel 命令用於刪除已有的群組賬戶,語法格式為“groupdel[參數] 群組名”

#groupadel 335 apple      #刪除名為apple的群組,倘若該群組中仍包括某些用戶,則必須先刪除這些用戶後,方能刪除群組。


groupmod 命令用於修改群組的屬性,語法格式為“groupmod [參數] 群組名”。

# groupmod -n apple banana  #將群組apple更名為banana

  

 文件許可權管理

對於一般文件來說,許可權比較容易理解:“可讀”表示能夠讀取文件的實際內容;“可寫”表示能夠編輯、新增、修改、刪除文件的實際內容;“可執行”則表示能夠運行一個腳本程式。對於目錄文件來說,“可讀”表示能夠讀取目錄內的文件列表;“可寫”表示能夠在目錄內新增、刪除、重命名文件;而“可執行”則表示能夠進入該目錄。

 

 

 

chmod 命令是控制用戶對文件的許可權的命令

# chmod ugo+r file1.txt             #將文件 file1.txt 設為所有人皆可讀取
# chmod a+r file1.txt               #將文件 file1.txt 設為所有人皆可讀取
# chmod 777 file1.txt               #將文件 file1.txt 設為所有人皆可讀,寫和執行


chown 命令用於設置文件所有者和文件關聯組的命令

# chown root /home/sein/file1         #/home/sein/file1 的所有者設置 root
# chown root:root /home/sein/file1    #/home/sein/file1 的所有者和群組設置 root  


setfacl 命令用於管理文件的ACL許可權規則

# setfacl -m u:st:rx /project         #表示設定 st 用戶對 project 目錄具有 rx 許可權
# setfacl -Rm u:st:rx /project        #表示設定 st 用戶對 project 目錄及子目錄和子文件具有 rx 許可權
# setfacl -dm u:st:rx /project        #表示設定 st 用戶對 project 目錄以及新建的文件具有 rx 許可權

  

 

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

-Advertisement-
Play Games
更多相關文章
  • # 1.1 【環境】快速安裝 Python 與PyCharm “工欲善其事,必先利其器”,為了自學之路的順利順利進行。首先需要搭建項目的開發環境。 ## 1. 下載解釋器 進入 [Python 官網](https://www.python.org/downloads/windows/),目前 Pyt ...
  • ## 分頁查詢 **分析:** * 分析文檔要求 * 查看前端傳遞給後臺的參數 * 分析參數進行編碼 * 後臺返回給前端的數據 **思路** 瀏覽器 - > Controller層 - > Service層 - > Mapper層 - > 資料庫 ### **設置分頁攔截器** ```java @C ...
  • # 一、前言 halo各位大佬很久沒更新了最近在搞微信支付,因商戶號審核了我半個月和小程式認證也找了資料並且將商戶號和小程式進行關聯,至此微信支付Native支付完成.此篇文章過長我將分幾個階段的文章發佈(項目源碼都有,小程式和PC端) ![](https://qiniu.yby6.com/yby- ...
  • # 租用游艇 ## 題目描述 長江游艇俱樂部在長江上設置了 $n$ 個游艇出租站 $1,2,\cdots,n$。游客可在這些游艇出租站租用游艇,併在下游的任何一個游艇出租站歸還游艇。游艇出租站 $i$ 到游艇出租站 $j$ 之間的租金為 $r(i,j)$($1\le i\lt j\le n$)。試設 ...
  • 哈嘍大家好,我是鹹魚 今天來講一個我在實現 python 列表切片時遇到的趣事 在正式開始之前,我們先來瞭解一下**切片(slice)** 切片操作是訪問序列(列表、字元串......)中元素的另一種方法,它可以訪問一定範圍內的元素,通過切片操作,可以生成一個新的序列 語法如下 ```python ...
  • 最近需要在計算大文件的 MD5 值時顯示進度,於是我寫瞭如下的代碼: ``` cs public long Length {get; private set; } public long Position { get; private set; } public async Task Compute ...
  • ## **記憶體分區** 先回顧一下C#的記憶體種類 1. 棧區:由編譯器自動分配釋放 ,存放值類型的對象本身,引用類型的引用地址(指針),靜態區對象的引用地址(指針),常量區對象的引用地址(指針)等。其操作方式類似於數據結構中的棧。 2. 堆區(托管堆):用於存放引用類型對象本身。在c#中由.net平 ...
  • # ZY知識庫留言板功能實現 # 前言 因為這個博客是用的大佬的開源項目,我也是用自己的想法改了很多東西,雖然可能寫的不是很好,但是我自己想要的效果實現了,開源項目不就是用來學習的嘛,所以不能一層不變,之前首頁改版、評論功能我都沒有寫文章,這次抽空更新了留言板功能,來水一篇文章。 留言板地址:[ZY ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...