Liunx操作系統筆記5

用戶管理命令:
useradd命令:
useradd命令的功能是創建并設置用戶信息。使用useradd命令可以自動完成用戶信息、基本組、家目錄等的創建工作,并在創建過程中對用戶初始信息進行定制。

語法格式:useradd? ?參數? ? 用戶名

常用參數:
-M? 不建立用戶家目錄? ? ? ? -c? 添加備注文字
-d? ?設置新用戶登錄時所使用的家目錄? ? -n? ?不建立以用戶名稱為名的組
-D? ?設置新用戶的預設值? ? -o? 允許創建重復UID的用戶
-e 設置用戶的終止日期? ?-p 設置用戶的密碼
-f? ?設置用戶過期幾日后永久停權? -r? 建立系統用戶
-g 設置用戶對應的基本用戶組? ? -R? 設置根目錄
-G? ? 設置用戶對應的擴展用戶組? ?-s? 設置新用戶的默認Shell終端
-u? ? 設置用戶ID? ? ? ? ? ? ? ? ?-h? ?顯示幫助信息

參考示例
useradd? test1? ?#創建指定的用戶信息
useradd? -M? -s? /sbin/nologin? ? test2? ? ? #創建指定的用戶信息,但不創建家目錄,亦不讓登錄系統
useradd? ? -u? ? 6688? ? test3? ???#創建指定的用戶信息,并自定義UID值
useradd? ? -G? ?root? ?test4? ? #創建指定的用戶信息,并追加指定組為該用戶的擴展組
useradd? ?-e? "2025/01/01"? test5? ? ? ?#創建指定的用戶信息,并指定過期時間
擴展:
#新建用戶并將其加入指定用戶組,作為其主用戶組(每個用戶有且只有一個主用戶組)
useradd? -g? ?<用戶組名稱> <用戶名稱>
#或者 新建用戶并將其加入指定附屬用戶組,附屬用戶組可以有多個,多個附屬組名稱用逗號分隔即可
useradd -G? ?<用戶組名稱> <用戶名稱>

passwd?命令:
passwd命令來自英文單詞password的縮寫,其功能是修改用戶的密碼值
同時也可以對用戶進行鎖定等操作,但需要管理員身份才可以執行。
當使用 useradd 命令來添加用戶后,默認該用戶還不能登錄,因為沒有為該用戶設置密碼
只有設置了密碼后,才可以登錄。而設置密碼的命令是passwd

常用格式: passwd? 參數? 用戶名

常用參數:
-d? 清除已有密碼? ?-S? 顯示當前密碼狀態
-e? ?下次登錄時強制修改密碼? ?-u 解鎖用戶的密碼值,允許修改
-f? ?強制執行操作而不詢問? ? -w 設置密碼到期前幾天收到警告信息
-k? ?設置用戶在期滿后能仍能正常使用? -x? 設置最大密碼有效期
-l? 鎖定用戶的密碼值,不允許修改? ?--help? 顯示幫助信息

參考示例:
passwd? ?#修改當前登錄用戶的密碼值,注意輸入過程中密碼不可見。
passwd? test1? ?#修改指定用戶的密碼值
passwd -l? test1? #鎖定指定用戶的密碼值,不允許其進行修改
passwd? -u? test1? ?#解鎖指定用戶的密碼值,允許其進行修改
passwd? -e? ?test2? ? #強制指定的用戶在下次登錄時必須重置其密碼
passwd? -d? test2? ? #刪除指定用戶的密碼值
passwd? -S? ?test3? ? #查看指定用戶的密碼狀態



usermod 命令:
usermod命令來自英文詞組user modify的縮寫,其功能是修改用戶信息中的各項參數。在創建用戶后如果發現信息錯誤,可以不用刪除,而是用usermod命令直接修改用戶信息,并且參數會立即生效。

語法格式:usermod? ?參數? 用戶名

常用參數:
-a? 將用戶添加至擴展組中? ? -L??鎖定用戶密碼,使密碼立即失效
-c? 修改用戶的備注文字? ? -m 將用戶家目錄內容移動到新位置
-d? ?修改用戶登錄時的家目錄? -o?允許重復的用戶ID
-e? 修改用戶的有效期限? ? -p?設置用戶的新密碼
-f? 設置在密碼過期多少天后關閉該用戶? ?-s? 修改用戶登錄后使用的Shell終端
-g 修改用戶所屬的基本群? ? ?-u? 修改用戶的ID

參考示例:
usermod? -d? ?/home/testA? test1?#修改指定用戶的家目錄路徑,注意:不能有用戶正在使用該賬號
usermod -u 6688 test1??#修改指定用戶的ID
usermod? -l? newname? ?test1? ? #修改指定用戶的名稱為newname
usermod? -L test1? ? #鎖定指定的用戶,臨時不允許登錄系統
usermod? -U test1? ? #解鎖指定的用戶,再次允許登錄系統
擴展:
將已有用戶添加到指定用戶組
#將已有用戶添加到指定用戶組,作為其附屬用戶組
# -a 代表append,和 -G 一起使用,將用戶添加到新用戶組中而不必來開原有的其他用戶組usermod? -a? -G? <用戶組名稱> <用戶名稱>
#將已有用戶的主用戶組改為新的用戶組
usermod? -g <新的用戶組名稱> <用戶名稱>


usedel命令:
userdel命令來自英文詞組userdelete的縮寫,其功能是刪除用戶信息。
在Linux系統中,一切都是文件,用戶信息被保存到了/etc/passwd、/etc/shadow以及/etc/group文件中,因此使用userdel命令實際上就是刪除指定用戶在上述3個文件中的對應信息。

語法格式:userdel? 參數? ?用戶名

常用參數:
-f? ?強制刪除用戶而不詢問????????-r刪除用戶的家目錄及其內全部子文件
-h? ?顯示幫助信息? ? ?-Z? ? 刪除用戶的SELinux映射用戶
參考示例:
userdel? ? test1????????#刪除指定的用戶信息
userdel? ?-r? ?test2????????#刪除指定的用戶信息及家目錄,注意:刪除的時候要慎重

擴展:
#將用戶從該用戶的附屬組中刪除
gpasswd? -d? <用戶名稱>??<用戶組名>?

su 命令:
su命令來自英文單詞switch user的縮寫,其功能是切換用戶身份。
將管理員切換至任意用戶身份時無須密碼驗證,而將普通用戶切換至任意用戶身份時均需密碼驗證另外,添加單個減號(-)參數表示完全的身份變更,不保留之前用戶的任何環境變量信息。

語法格式:su? ?參數? ?用戶名

常用參數:
-m? 切換身份時,不變更環境變量????????-c執行完命令后,自動恢復原來的身份
-s???設置要執行的Shell終端? ? ? ? -? 完全地切換身份
-f? ?不讀取啟動文件(適用于csh和tsch)????????--help 顯示幫助信息
-l? ?切換身份時,同時變更工作目錄????????--version 顯示版本信息

參考示例:
su? root? #變更至指定的用戶身份
su? -? root? #完全變更至指定的用戶身份

它們之間的區別:
在使用su? ?root命令時,不會加載root用戶的環境變量。您仍然會保留當前用戶的權限和環境設置只是切換到root用戶的身份。
使用su? ?-root命令時,會加載root用戶的完整環境變量。這意味著您將切換到root用戶的身份,并使用root用戶的環境設置。

有部分用戶提示,
xxx不在 sudoers 文件中,此事將被報告。
修改如下文件即可。
1. 切換到root身份:su? root
2. 修改文件權限:chmod 777? /etc/sudoers?
3. 修改文件內容: test6? ?ALL=(ALL)? ?ALL
4.?保存退出后,恢復文件權限:chmod? 440? /etc/sudoers
5.?返回自己的身份:exit
6. 再次執行 sudo.xxx? 指令驗證效果

sudo 權限在 /etc/sudoers? 文件中,該文件默認權限是440

用戶組管理命令:
groupadd命令:
groupadd命令的功能是創建新的用戶組。每個用戶在創建時都有一個與其同名的基本組,后期可以使用groupadd命令創建出新的用戶組信息,讓多個用戶加入指定的擴展組,從而為后續的工作提供了良好的文檔共享環境。

語法格式:groupadd? ?參數? ? 用戶組

常用參數:
-f? 若用戶組已存在,則以成功狀態退出????????-o? 允許創建重復ID的用戶組
-g? 設置用戶組ID????????-p? 設置用戶組密碼
-h? 顯示幫助信息? ? ? ? -r? 創建系統用戶組
參考示例:
groupadd? ?newgroup1????????#創建一個新的用戶組
groupadd? ?-g? ?6688? ? ?newgroup2? ? ?#創建一個新的用戶組,并指定用戶組ID
groupadd? ? -r? ? ?newgroup3 ????????#創建一個新的用戶組,設定為系統工作組

groupmod命令:
groupmod命令來自英文詞組“group.modify”的縮寫,其功能是用于更改群組屬性。
Linux系統中的群組信息一般不建議更改,因為涉及已加入用戶的歸屬問題,尤其是群組名稱、組GID,一定要確認好后再操作。

語法格式:groupmod? ?參數? ?群組名

常用參數:
-g? 設置群組識別碼????????-h? 顯示幫助信息
-n? ?設置群組名稱????????-o? 允許重復使用群組識別碼
-p? 設置群組密碼

參考示例:
groupmod? -n? newgroupA? oldgroupB? ? ? ? #更改指定用戶組的名稱(原名是oldgroupB?)
groupmod? -g? ?8888? newgroupA? ? ?#更改指定用戶組的識別碼??


groupdel 命令:
groupdel命令來自英文詞組“deletea group”的縮寫,其功能是用于刪除用戶組。
Linux系統中的用戶組信息被保存在 ect/group 和 /ect/gshadow 文件中,手動刪除對應信息即可,亦可以用groupdel命令刪除。

語法格式:groupdel? [參數]? 群組名

常用參數:
-f? 強制刪除而不詢問????????-h? 顯示幫助信息
參考實例:
groupdel? ?newgroup????????#刪除指定名稱的用戶組
groupdel? ?-f? ? newgroup????????#強制刪除指定名稱的用戶組

用戶配置文件:
在 Linux 中,用戶名、密碼、用戶組和用戶組密碼都是在保存在不同的文件配置文件中。
/etc/passwd: 用于保存用戶賬號文件
/etc/shadow: 用戶保存用戶的密碼文件 ==》useradd
/etc/group: 用于保存用戶組的文件
/etc/gshadow: 用于保存用戶組密碼的文件 ==》groupadd
/etc/skel: 保存用戶家目錄文件隱藏文件
/etc/default/useradd:用戶定義添加用戶的信息文件 ==》用戶配置文件


/etc/passwd:
passwd 是一個文本文件,用于定義系統的用戶賬號,由于這個文件是所有用戶都對需要讀取的權限,所以文件中只定義用戶的賬號,而不保存用戶密碼。
在這個文件中,每一行記錄了一個用戶信息,而用戶信息是以 : 英文冒號來進行分隔的 7 個部分組成,
這 7 個部分的意義說明如下:
root? ? : x : 0 :? ? ? ? ? 0 :? ? ? ? ?root : /? ? ? ?root : /bin/bash
redhat : x : 1000 : 1000 : redhat : /home/redhat :/bin/bash
1? ? ? ? ? ? 2? ? ? 3? ? ? ? 4? ? ? ? ? 5? ? ? ? ? ? ? ? ?6? ? ? ? ? ? ? ? ?7
1 用戶名
2 用戶登錄密碼的占位符,如果為 x 表示有密碼,如果為空或 * 表示沒有密碼
3 用戶的 ID,即 uid
4 用戶所屬組 ID,即 gid
5 用戶的個人次數,如果用戶的完整名稱、地址、辦公電話、家庭住址等個人信息
6 用戶的家目錄
7 用戶的默認登錄所能使用的 shell 腳本


/etc/shadow:
這個文件是用戶保存用戶密碼的文件,我們可以通過如下的命令來查看這個文件:
tail -2 /etc/shadow
這個文件每一行記錄了一個用戶的密碼信息,它們共有 9 個字段,分別表示如下:
root:$6$hS4yqJu7WQfGlk0M$Xj/
SCS5z4BWSZKN0raNncu6VMuWdUVbDScMYxOgB7mXUj./
dXJN0zADAXQUMg0CuWVRyZUu6npPLWoyv8eXPA.::0:99999:7::: ftp:*:
16659:0:99999:7::: nobody:*:16659:0:99999:7::: longshuai:
$6$8LGe6Eh6$vox9.OF3J9nD0KtOYj2hE9DjfU3iRN.v3up4PbKKGWLOy3k1Up50bbo7Xii/
Uti05hlqhktAf/dZFy2RrGp5W/:17323:0:99999:7:::
第一列:用戶名。

第二列:加密后的密碼。但是這一列是有玄機的,有些特殊的字符表示特殊的意義。
①.該列留空,即"::",表示該用戶沒有密碼。
②.該列為"!",即":!:",表示該用戶被鎖,被鎖將無法登陸,但是可能其他的登錄方式是不受限制的
③.該列為"*",即":*:",也表示該用戶被鎖,和"!"效果是一樣的。
④.該列以"!"或"!!"開頭,則也表示該用戶被鎖。
⑤.該列為"!!",即":!!:",表示該用戶從來沒設置過密碼。
⑥.如果格式為"$id$salt$hashed",則表示該用戶密碼正常。其中$id$的id表示密碼的加密算法,
$1$表示使用MD5算法,$2a$表示使用Blowfish算法,"$2y$"是另一算法長度的Blowfish,
"$5$"表示SHA-256算法,而"$6$"表示SHA-512算法,可見上面的結果中都是使用sha-512算法的。
$5$和$6$這兩種算法的破解難度遠高于MD5。$salt$是加密時使用的salt,$hashed才是真正的密碼部分。

第三列:從1970年1月1日到上次密碼修改經過的時間(天數)。通過計算現在離1970年1月1日的天數減去這個值,結果就是上次修改密碼到現在已經經過了多少天,即現在的密碼已經使用了多少天。

第四列:密碼最少使用期限(天數)。省略或者0表示不設置期限。
例如,剛修改完密碼又想修改,可以限制多久才能再次修改

第五列:密碼最大使用期限(天數)。超過了它不一定密碼就失效,可能下一個字段設置了過期后的寬限天數。設置為空時將永不過期,后面設置的提醒和警告將失效。root等一些用戶的已經默認設置為了99999,表示永不過期。如果值設置小于最短使用期限,用戶將不能修改密碼。

第六列:密碼過期前多少天就開始提醒用戶密碼將要過期。空或0將不提醒。

第七列:密碼過期后寬限的天數,在寬限時間內用戶無法使用原密碼登錄,必須改密碼或者聯系管理員。設置為空表示沒有強制的寬限時間,可以過期后的任意時間內修改密碼。

第八列:帳號過期時間。從1970年1月1日開始計算天數。設置為空帳號將永不過期,不能設置為0。不同于密碼過期,密碼過期后賬戶還有效,改密碼后還能登錄;帳號過期后帳號失效,修改密碼重設密碼都無法使用該帳號。

第九列:保留字段。

/etc/group:
這個文件中存儲是用戶組信息,我們可以通過如下的命令來進行查看:
tail -3 /etc/group
dnsmasq:x:977:
tcpdump:x:72:
redhat:x:1000:
在這文件中每一行記錄了一個組信息,使用英文冒號分隔成 4 個字段,分別代表如下:
redhat : x : 1000 :
1? ? ? ? ? ? ?2? ? ? 3? ? ? ? ?4
1 表示組名稱
2 表示組的密碼占位符,真正的密碼保存在 /etc/gshadow 文件中
3 表示組的 id 值
4 表示附加組中的用戶列表,以英文逗號分隔,如果為空表示沒有附加用戶


/etc/gshadow:
這個文件是用于保存組的密碼信息,通過如下命令來查看:
tail -3 /etc/gshadow
dnsmasq:!::
tcpdump:!::
redhat:!::
在這個文件中每一行代表一個組的密碼信息,通過英文冒號分隔為 4 段,分別表示如下:
redhat : ! :? ? ?:
1? ? ? ? ? ?2? 3? ? ?4
1 組名稱,與 /etc/group 文件中第一列相同
2 組密碼,如果值為 ! 表示沒有密碼
3 組管理的用戶名,很少使用
4 組中附加用戶,也 /etc/group 中第 4 列相同

/etc/skel:
這個文件中記錄是用戶家目錄下的相關隱藏文件。默認情況下,當新創建好一個用戶后,
會在這個用戶的家目錄下新建一個隱藏文件,而這些隱藏文件就是從這個文件中拷貝過來的
ls? ? -a? ? /etc/skel
../
./
.mozilla/
.bash_logout
.bash_profile
.bashrc

/etc/default/useradd:
在這個文件中記錄了創建用戶的相關信息。
vim /etc/default/useradd
# useradd defaults file
GROUP=100? ? ?這個選項用于建立用戶的默認組,它是公有組,而目錄使用的是私有組,所以它無效
HOME=/home? ? ?用于指定所創建的用戶所在的家目錄,它是創建普通用戶的家目錄
INACTIVE=-1? ? ?用于指定密碼過期的寬限時間,如果值為-1 表示不限制,它與/etc/shadow 文件中第 7個字段對應
EXPIRE=? ? ? 用于指定密碼的過期時間,它與 /etc/shadow 文件中的第 8 個字段對應,如果值為空表示永久有效
SHELL=/bin/bash? ? ? ? 用于指定用戶登錄后的操作,它與 /etc/passwd文件中第 7 個字段對應
SKEL=/etc/skel? ? ? 用于指定用戶所在家目錄下的隱藏文件的拷貝來源
CREATE_MAIL_SPOOL=yes? ? ? ?用于給新建的用戶指定郵箱地址,它與 /etc/login.defs 文件中MAIL_DIR 指向的地址相同

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

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

相關文章

spring-ai-alibaba 接入Tushare查詢股票行情

最近spring-ai-alibaba主干分支新增了對Tushare的支持&#xff0c;一起來看看如何使用簡單樣例老樣子&#xff0c;分三步進行&#xff1a;第一步&#xff1a;添加依賴<dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-aliba…

Java使用Langchai4j接入AI大模型的簡單使用(一)

一、LangChain4j 簡介 LangChain4j 是 Java 生態中的 LangChain 實現&#xff0c;是一個用于構建大語言模型(LLM)應用程序的框架。它提供了與各種LLM服務集成的能力&#xff0c;并簡化了構建復雜AI應用的過程。 LangChain4j官方文檔&#xff1a;Integrations | LangChain4j …

Linux —— A / 基礎指令

建議學習路徑&#xff1a;Linux系統與系統編程 ? Linux網絡和網絡編程 ? MySQL一、初識shell命令 1.1、關于 Linux 桌面很多同學的 Linux 啟動進?圖形化的桌?. 這個東西?家以后就可以忘記了。以后的工作中沒有機會使用圖形界面。思考: 為什么不使用圖形界面? 1.2、下…

[論文閱讀] 人工智能 + 軟件工程 | 用大語言模型+排名機制,讓代碼評論自動更新更靠譜

LLMCup&#xff1a;用大語言模型排名機制&#xff0c;讓代碼評論自動更新更靠譜 LLMCup: Ranking-Enhanced Comment Updating with LLMsarXiv:2507.08671 LLMCup: Ranking-Enhanced Comment Updating with LLMs Hua Ge, Juan Zhai, Minxue Pan, Fusen He, Ziyue Tan Comments: …

悲觀鎖 樂觀鎖

悲觀鎖 樂觀鎖 在沒有加鎖的秒殺場景下 每秒打進來的請求是巨大的 高并發場景下 我們發現不僅異常率高的可怕 庫存竟然還變成了負數 這產生的結果肯定是很大損失的 那為什么會出現超賣問題呢 我們假設有下面兩個線程線程1查詢庫存&#xff0c;發現庫存充足&#xff0c;創建訂單…

如何使用Cisco DevNet提供的免費ACI學習實驗室(Learning Labs)?(Grok3 回答)

Cisco DevNet 提供的免費 ACI&#xff08;Application Centric Infrastructure&#xff09;學習實驗室&#xff08;Learning Labs&#xff09;是幫助用戶學習和實踐 Cisco ACI 技術&#xff08;包括 APIC 控制器&#xff09;的優秀資源&#xff0c;適合網絡工程師、開發者和準備…

Combine的介紹與使用

目錄一、Combine 框架介紹二、核心概念三、基礎使用示例3.1、創建 Publisher & 訂閱3.2、操作符鏈式調用3.3、Subject 使用&#xff08;手動發送值&#xff09;3.4、網絡請求處理3.5、組合多個 Publisher3.6、錯誤處理四、核心操作符速查表 Operator五、UIKit 綁定示例六、…

【Java筆記】七大排序

目錄1. 直接插入排序2. 希爾排序3. 選擇排序4. 堆排序(重要)5. 冒泡排序6. 快速排序&#xff08;重要&#xff09;6.1 Hoare 法6.1.1 Hoare 法優化6.2 挖坑法&#xff08;重點&#xff09;6.3 快速排序的非遞歸寫法7. 歸并排序海量數據的排序問題8. 總結1. 直接插入排序 時間復…

H.264編解碼(NAL)

在我們的日常生活中&#xff0c;比如有緩存電影或者是發送視頻的需求。如果沒有視頻壓縮&#xff0c;一部手機只能存幾分鐘視頻&#xff0c;1TB 硬盤也裝不下幾部電影&#xff0c;用 4G 網絡發一段 1 分鐘視頻&#xff0c;可能需要幾十分鐘&#xff08;甚至傳不完&#xff09;&…

新手向:Python自動化辦公批量重命名與整理文件系統

本文將詳細介紹如何使用Python實現一個強大的文件批量重命名與整理工具&#xff0c;幫助開發者自動化這一繁瑣過程。本教程面向Python初學者&#xff0c;通過一個完整的項目案例&#xff0c;講解文件系統操作的核心技術。我們將構建的工具將具備以下功能&#xff1a;基于正則表…

C++ 左值右值、左值引用右值引用、integral_constant、integral_constant的元模板使用案例

C 左值右值、左值引用右值引用、integral_constant、integral_constant的元模板使用案例一、左值右值1.左值2.右值二、左值引用右值引用1.左值引用2.右值引用總結三、integral_constant四、integral_constant的元模板使用案例1.求最大整數2.內存對齊alignof關鍵字元模板計算內存…

c++算法一

1.雙指針總結&#xff1a;1.復寫0這道題&#xff0c;告訴我們要正難其反&#xff0c;我們從后向前進行重寫&#xff0c;刪除某些數字的時候&#xff0c;我們可以從前向后遍歷&#xff0c;但是增加一些數字的時候會對后面的數據進行覆蓋&#xff0c;所以要從后向前進行2.快樂數涉…

LeetCode-283. 移動零(Java)

283. 移動零 給定一個數組 nums&#xff0c;編寫一個函數將所有 0 移動到數組的末尾&#xff0c;同時保持非零元素的相對順序。 請注意 &#xff0c;必須在不復制數組的情況下原地對數組進行操作。 示例 1: 輸入: nums [0,1,0,3,12] 輸出: [1,3,12,0,0] 示例 2: 輸入: n…

【數據庫】慢SQL優化 - MYSQL

一、數據庫故障的關鍵點 引起數據庫故障的因素有操作系統層面、存儲層面&#xff0c;還有斷電斷網的基礎環境層面&#xff08;以下稱為外部因素&#xff09;&#xff0c;以及應用程序操作數據庫和人為操作數據庫這兩個層面&#xff08;以下稱內部因素&#xff09;。這些故障中外…

桶排序算法深度剖析

&#x1f50d; 桶排序算法深度剖析 &#x1f3af; 核心原理圖解?? 完整算法流程 #mermaid-svg-LyB6SpaZ132X4Wtn {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LyB6SpaZ132X4Wtn .error-icon{fill:#552222;}#mer…

對S32K144做的BMS安裝快速開發Simulink庫及BMS例程介紹

前言 本章介紹BMS硬件功能及SimuLink庫為主&#xff0c;捎帶介紹一些例程內容 注意&#xff1a;例程所用的協議均是自定義的 自做的SimuLink庫也會不定期更新 BMS例程的內容不定期維護添加 當前的BMS沒有主動均衡功能&#xff0c;這個有考慮后期加上&#xff0c;當前還處于…

urlencode、html實體編碼、unicode

目錄 urlencode html實體編碼 Unicode編碼 urlencode URL編碼也稱為百分號編碼&#xff0c;用于將URL中的特殊字符轉換為安全傳輸的格式。英文數字一般不編碼 特點&#xff1a; 使用%后跟兩個十六進制數字表示字符 空格編碼為或%20 保留字符&#xff08;; / ? : & …

【HarmonyOS】元服務概念詳解

【HarmonyOS】元服務概念詳解 最近幾年&#xff0c;我們手里的設備越來越多——手機、平板、手表、車機……光是管理這些設備上的APP就夠頭疼了&#xff1a;下載要流量、安裝占內存、換個設備又得重新弄一遍。有沒有更簡單的方式&#xff1f;HarmonyOS推出的“元服務”&#xf…

vscode/cursor怎么自定義文字、行高、顏色

JetBrains Mono: A free and open source typeface for developers | JetBrains: Developer Tools for Professionals and Teams 首先下載上面的文字&#xff0c;然后右鍵全選&#xff0c;安裝 然后重啟cursor 下載插件Apc Customize UI 點擊設置 把下面的代碼復制進去&…

JavaScript 與 C語言基礎知識差別

一&#xff0c; 變量聲明對比 C語言&#xff1a; int age 20; // 必須指定類型 float price 9.99; char grade A; const double PI 3.14; // 常量JavaScript&#xff1a; let age 20; // 數字 var price 9.99; // 現在不用&#xff0c;有缺點 co…