Linux基礎命令詳解:從入門到精通

本文整理了Linux系統中最常用的基礎命令,每個命令都配有詳細說明和具體示例,幫助你快速掌握Linux操作技巧。文章中用的終端是XShell,系統是Centos


📁 1. ls - 列出目錄(文件夾)內容

功能:顯示當前目錄下的文件和子目錄信息
常用選項

  • -a:顯示隱藏文件(以.開頭的文件)
  • -l:詳細信息格式(權限/所有者/大小等)
  • -F:用符號標記文件類型(*/@/=等)
$ ls# 列出當前目錄內容
file.txtdir$ ls -a# 顯示所有文件(含隱藏文件)
....hiddenfile.txt$ ls -lF# 詳細格式并標記類型
-rw-r--r-- 1 user group 0 Jan 12 file.txt*
drwxr-xr-x 2 user group 4096 Jan 12 dir/

在這里插入圖片描述
圖片中出現ls -l的輸出:
每個字段的含義

字段位置含義說明示例解釋
第1位文件類型-:普通文件;d:目錄;l:符號鏈接;b:塊設備(如硬盤)
第2-10位權限位(3組)每組3位,對應所有者(u)組(g)、**其他用戶(o)**的權限:
r(讀,4)、w(寫,2)、x(執行,1)
示例rw-r--r--
- 所有者:讀+寫(rw-)
- 組用戶:讀(r–)
- 其他用戶:讀(r–)
第11位硬鏈接數1:該文件有1個硬鏈接(可理解為“引用計數”)
第12位所有者user:文件所屬用戶
第13位所屬組group:文件所屬用戶組
第14位文件大小1024:字節(加-h選項顯示為1K,更易讀)
第15-17位修改時間Jan 12 14:30:文件最后修改時間
第18位起文件名/目錄名file.txt:文件名;dir/:目錄(-F選項標記)

注意:這些都屬于文件的屬性信息
文件 = 文件的內容 + 文件的屬性
在這里插入圖片描述
所以就比如在windows上新建一個空文件,并不是真的不占磁盤空間


📍 2. pwd - 顯示當前路徑

功能:打印當前工作目錄的絕對路徑

$ pwd
/home/user/documents

在這里插入圖片描述


📂 3. cd - 切換目錄

功能:更改當前工作目錄
特殊路徑

  • ..:上級目錄
  • ~:用戶家目錄
  • -:返回上次目錄

語法:cd 目錄名

$ cd /var/log# 切換到絕對路徑
$ cd ..# 返回上級目錄
$ cd ~/downloads # 進入家目錄的downloads
$ cd -# 返回上次所在目錄

在這里插入圖片描述

cd 可以理解為我們的鼠標的那個箭頭,cd 某個目錄就可以進入到這個目錄里

補充:路徑的認識
Linux系統中,磁盤上的文件和目錄被組成?棵目錄樹,每個節點都是目錄或文件
? 其中普通文件?定是目錄樹的葉子節點
? 目錄可能是葉子(空目錄), 也可能是路上節點
? 理解路徑存在的意義: 樹狀組織方式,都是為了保證快速定位查找到指定的文件,而定位文件就需要具有唯?性的方案來進行定位文件。其中任何?個節點,都只有?個父節點,所以,從根目錄開始,定位指定文件,路徑具有唯?性
? 絕對路徑:?般從/開始,不依賴其他目錄的定位文件的方式
? 相對路徑:相對于當前用戶所處目錄,定位文件的路徑方式
? 絕對路徑?般不會隨著用戶的路徑變化而喪失唯?性,?般在特定服務的配置文件中經常被使用
? 相對路徑因為它的便捷性,?般在命令行中使用較多

在這里插入圖片描述
在這里插入圖片描述

如圖,退到根目錄就無法再退了
在這里插入圖片描述
在這里插入圖片描述

$ tree //查看當前樹目錄結構
//系統默認是沒有的,需要安裝
centos:yum install -y tree
ubuntu: apt install -y tree

在這里插入圖片描述

如果遇到文件很多刷屏停不下來就按 ctrl + c,隨便一說 clear 這個指令可以清屏


?? 4. touch - 創建空文件/更新時間戳

功能

  1. 創建新文件
  2. 更新文件訪問/修改時間

語法:touch [選項]… 文件…

$ touch newfile.txt# 創建空文件
$ touch -a file.txt# 只更新訪問時間
$ touch -m file.txt# 只更新修改時間

在這里插入圖片描述


📂 5. mkdir - 創建目錄

語法:mkdir [選項] dirname…
功能:在當前目錄下創建一個名為 “dirname”的目錄
選項-p:遞歸創建多級目錄

$ mkdir new_dir# 創建單級目錄
$ mkdir -p a/b/c/d# 創建多級目錄

目錄結構:

a/
└── b/
└── c/
└── d/

🗑? 6. rmdir & rm - 刪除文件/目錄

rmdir:刪除空目錄
$ rmdir empty_dir# 刪除空目錄
$ rmdir -p a/b/c# 遞歸刪除空目錄
rm:刪除文件/目錄

選項

  • -r:遞歸刪除
  • -f:強制刪除
  • -i:交互確認
$ rm file.txt# 刪除文件
$ rm -r mydir# 遞歸刪除目錄
$ rm -ri dir# 交互式遞歸刪除

📚 7. man - 查看幫助手冊

功能:查看命令/系統調用的文檔
章節

  • 1:普通命令
  • 2:系統調用
  • 3:庫函數
$ man ls# 查看ls命令幫助
$ man 2 fork# 查看fork系統調用
$ man 3 printf# 查看C庫函數printf

man手冊有九章(不同系統可能會有差別)


📄 8. cp - 復制文件/目錄

語法:cp [選項] 源文件或目錄 目標文件或目錄
選項

  • -r:遞歸復制目錄
  • -i:覆蓋前確認
  • -f:強制覆蓋

cp指令用于復制文件或目錄
如同時指定兩個以上的文件或目錄,且最后的目的地是?個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中

$ cp file.txt file_backup.txt# 復制文件
$ cp *.txt target_dir/# 復制所有txt文件
$ cp -r dir new_dir# 遞歸復制目錄

在這里插入圖片描述

理論補充:
Linux"一切皆文件",該理論將系統中的 設備(如鍵盤、顯示器與普通文件統一抽象為文件對象,通過文件操作(讀/寫)實現設備交互。具體來說:
向顯示器打印內容 → 向 顯示器文件(標準輸出,stdout)寫入數據;
從鍵盤讀取輸入 → 從 鍵盤文件(標準輸入,stdin)讀取數據。
圖片通過多個Linux命令示例,展示了"一切皆文件"理論的實際應用,以及輸入/輸出重定向的使用場景:
1. 標準輸出:直接向顯示器文件寫入

  • 示例1echo "hello world"
    作用:將字符串"hello 你好"輸出到顯示器(標準輸出stdout)。
    邏輯:對應理論中"向顯示器文件寫入"的操作。
  • 示例2printf "hello world, %d, %f\n" 3 3.14
    作用:格式化輸出字符串(%d表示整數,%f表示浮點數),結果為hello world, 3, 3.140000
    邏輯:與echo類似,均向顯示器文件寫入數據,但printf支持更靈活的格式控制。
    2. 輸出重定向:改變寫入目標(從顯示器到文件)
    Linux中用**>(覆蓋寫入)和>>**(追加寫入)實現輸出重定向,將原本應輸出到顯示器的內容寫入指定文件。
  • 示例3:覆蓋寫入(>)
    命令:echo "hello world" > myfile.txt
    作用:將"hello 你好"寫入myfile.txt文件(而非顯示器)。
    關鍵特性:先清空文件再寫入(圖片注釋:“寫入的時候,都是先清空再寫!!”)。
    驗證:- ls -l:查看文件列表,顯示myfile.txt的大小為12字節(包含字符串和換行符);- cat myfile.txt:查看文件內容,確認"hello world"已寫入。
  • 示例4:清空文件(>)
    命令:> myfile.txt
    作用:直接用>重定向符清空myfile.txt(無源內容時,>會截斷文件)。
    驗證:- ls -l:顯示myfile.txt大小為0字節;- cat myfile.txt:無輸出(文件為空)。
  • 示例5:追加寫入(>>)
    命令:echo "aaaaaaaaaaaaaabbbb" >> myfile.txt
    作用:將字符串追加到hello.txt末尾(不清空原有內容)。
    驗證:- cat myfile.txt:顯示兩行相同的字符串(首次追加+再次執行命令的結果),說明 >>保留原有內容(圖片注釋:“追加重定向!!”)。
    3. 輸入重定向:改變讀取來源(從鍵盤到文件)
    Linux中用 < 實現輸入重定向,將命令的輸入源從鍵盤(標準輸入stdin)改為指定文件。
  • 示例6cat < myfile.txt
    作用:將hello.txt作為cat命令的輸入,顯示文件內容(等同于直接執行cat hello.txt)。
    邏輯:對應理論中"從文件讀取數據"的操作,替代了從鍵盤輸入的默認行為(圖片注釋:“輸入重定向!!”)。
    在這里插入圖片描述

🚚 9. mv - 移動/重命名

語法:mv [選項] 源文件或目錄 目標文件或目錄
功能

  1. 移動文件/目錄
  2. 重命名文件/目錄
$ mv file.txt new_name.txt# 重命名
$ mv file.txt dir/# 移動到目錄
$ mv dir1/ dir2/# 移動目錄

在這里插入圖片描述


📖 10. cat - 查看文件內容

語法:cat [選項] [文件]
選項

  • -n:顯示行號
  • -b:非空行編號
  • -s:壓縮連續空行
$ cat file.txt# 顯示文件內容
$ cat -n file.txt# 顯示行號
$ cat -s file.txt# 壓縮連續空行

在這里插入圖片描述


🔍 11. more/less - 分頁查看

more:向下分頁查看

語法:more [選項]
選項

  • -n 指定輸出行數
  • q 退出more
$ more -10 large_file.log# 每次顯示10行

在這里插入圖片描述

less:交互式查看(支持上下翻頁)

語法:less [參數] 文件
選項

  • -i 忽略搜索時的大小寫
  • -N 顯示每行的行號
  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重復前?個搜索(與 / 或 ? 有關)
  • N:反向重復前?個搜索(與 / 或 ? 有關)
  • q:quit
$ less large_file.log
# 在less中:
#/keyword → 向下搜索
#?keyword → 向上搜索
#q → 退出

在這里插入圖片描述


🔝 12. head/tail - 查看文件首尾

head:顯示文件開頭

語法:head [參數]… [文件]…
選項

  • -n<行數> 顯示的行數
$ head -5 file.txt# 顯示前5行

在這里插入圖片描述

tail:顯示文件結尾

語法:tail 必要參數 [文件]
選項

  • -f 循環讀取
  • -n<行數> 顯示行數
$ tail -5 file.txt# 顯示最后5行
$ tail -f log.txt# 實時追蹤日志變化

那假設現在我有100行內容,我要求打印第50到60行該怎么辦呢?(沒有直接打印中間行的內容的命令)

補充知識
管道命令(|): 圖片中常出現命令1 | 命令2的組合,功能是將前一個命令的輸出作為后一個命令的輸入,實現更復雜的操作。
高頻示例(圖片中的常見場景):

  1. 過濾文件:列出當前目錄所有.txt文件(結合lsgrep
$ ls -l | grep ".txt"# 用grep過濾出包含".txt"的行
-rw-r--r-- 1 user group 1.0K Jan 12 14:30 file.txt
-rw-r--r-- 1 user group 2.0K Jan 12 14:30 data.txt
  1. 統計日志行數:統計log.txt中包含“error”的行數(結合catgrepwc
$ cat log.txt | grep "error" | wc -l# wc -l統計行數
5# 表示有5行包含"error"
  1. 查找并處理文件:找到所有.sh腳本并顯示其內容(結合findcat
$ find . -name "*.sh" | xargs cat# xargs將find結果作為cat的輸入

通過管道我們就可以實現各種流水線操作了


? 13. date - 顯示/設置時間

格式控制

  • %Y:年(2023)
  • %m:月(01-12)
  • %d:日(01-31)
  • %H:小時(00-23)
$ date# 默認格式
Wed Jan 11 18:22:50 CST 2023$ date +"%Y-%m-%d %H:%M"# 自定義格式
2023-01-11 18:30$ date -d @1673432636# 時間戳轉時間
Wed Jan 11 18:23:56 CST 2023

補充知識

時間戳

時間戳(Timestamp)是表示時間的數字格式,通常指從某個基準時間點到當前時間的總時長(單位:秒、毫秒、微秒等)。它是計算機系統中處理時間的核心方式,具有跨時區、易計算、格式統一的優勢。

一、核心概念

1. 基準時間點(Epoch Time)

最常用的基準是Unix時間戳的起點:
1970年1月1日00:00:00 UTC(協調世界時,即格林尼治標準時間GMT)。
所有Unix/Linux系統均以該時間點為起點計算時間戳。

2. 時間戳的類型
  • 秒級時間戳(最常見):從Epoch到當前的總秒數(如1721487600,對應2024-07-20 19:00:00 UTC)。
  • 毫秒級時間戳:秒級時間戳+3位毫秒(如1721487600123,對應2024-07-20 19:00:00.123 UTC)。
  • 微秒級時間戳:秒級時間戳+6位微秒(如1721487600123456,對應2024-07-20 19:00:00.123456 UTC)。

二、Linux中生成與轉換時間戳

Linux中最常用的工具是date命令(GNU版本,支持豐富的時間格式),以下是關鍵操作:

1. 生成當前時間戳
  • 秒級時間戳%s):
date +%s
# 輸出示例:1721487600
  • 毫秒級時間戳%s%3N%3N表示取3位毫秒):
date +%s%3N
# 輸出示例:1721487600123
  • 微秒級時間戳%s%6N%6N表示取6位微秒):
date +%s%6N
# 輸出示例:1721487600123456
2. 將時間戳轉換為可讀時間

date -d @<時間戳>@后跟秒級時間戳),會自動轉換為系統時區的本地時間(如北京時間UTC+8)。

  • 示例1:轉換秒級時間戳
date -d @1721487600
# 輸出示例(北京時間):Sat Jul 20 19:00:00 CST 2024
  • 示例2:轉換為指定格式(如YYYY-MM-DD HH:MM:SS
date -d @1721487600 +"%Y-%m-%d %H:%M:%S"
# 輸出示例:2024-07-20 19:00:00
3. 生成指定時間的時間戳

date -d "<指定時間>" +%s,將可讀時間轉換為秒級時間戳。

  • 示例1:轉換當前日期的指定時間
date -d "2024-07-20 19:00:00" +%s
# 輸出示例:1721487600
  • 示例2:轉換相對時間(如“3天前”)
date -d "3 days ago" +%s
# 輸出3天前的秒級時間戳

📅 14. cal - 顯示日歷

語法:cal 參數 [年份]
選項

  • -3:顯示上月/本月/下月
  • -y:顯示全年日歷
$ cal# 本月日歷
$ cal -3# 三個月日歷
$ cal 2023# 2023全年日歷

🔎 15. find - 文件搜索

語法:find pathname -options
選項

  • -name 按照文件名查找文件

示例:按名稱/類型搜索

$ find /home -name "*.txt"# 搜索所有txt文件
$ find . -type d -name "dir*"# 搜索目錄

在這里插入圖片描述


🔍 16. which/whereis - 查找命令路徑

which:查找可執行文件位置
$ which ls
/usr/bin/ls

在這里插入圖片描述

還記得之前說的Linux下“一切皆文件”嗎?
是的,我們未來學的大部分指令本質都是Linux系統下固定目錄下(/usr/bin/)的可執行文件
值得注意的是:我們自己寫的可執行程序是無法像指令通過名字直接使用的,除非把文件寫道/usr/bin/ 目錄下,但是不建議這么做,會污染系統的命名池

whereis:查找二進制/源碼/手冊
$ whereis python
python: /usr/bin/python /usr/lib/python2.7 /usr/include/python2.7

? 17. alias - 命令別名

功能:創建命令快捷方式

$ alias ll='ls -alF'# 創建別名
$ ll# 使用別名
$ unalias ll# 刪除別名

注意:別名是內存級的,重新登入別名就沒用了


🔍 18. grep - 文本搜索

語法: grep [選項] 搜尋字符串 文件
選項

  • -i:忽略大小寫
  • -n:顯示行號
  • -v:反向匹配
$ grep "error" log.txt# 搜索包含error的行
$ grep -i "warning" log.txt# 忽略大小寫
$ grep -n "start" config.conf# 顯示行號

在這里插入圖片描述


📦 19. tar - 打包壓縮

語法: tar [-cxtzjvf] 文件與目錄 …
參數:

  • -c :建立?個壓縮文件的參數指令(create 的意思);
  • -x :解開?個壓縮文件的參數指令!
  • -t :查看 tarfile 里面的文件!
  • -z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
  • -j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
  • -v :壓縮的過程中顯示文件!這個常用,但不建議用在背景執行過程!
  • -f :使?檔名,請留意,在 f 之后要立即接檔名喔!不要再加參數!
  • -C : 解壓到指定目錄

常用組合

  • 打包:tar -cvf archive.tar dir/
  • 解包:tar -xvf archive.tar
  • 壓縮:tar -zcvf archive.tar.gz dir/
  • 解壓:tar -zxvf archive.tar.gz
$ tar -czvf backup.tar.gz /home# 壓縮目錄
$ tar -tzvf backup.tar.gz# 查看壓縮包內容
$ tar -xzvf backup.tar.gz -C restore/# 解壓到指定目錄

后綴可以簡寫成 .tgz
在這里插入圖片描述


20.zip/unzip

語法: zip 壓縮?件.zip 目錄或文件
功能:將目錄或文件壓縮成zip格式
選項

  • -r:遞歸處理,將指定目錄下的所有文件和子目錄?并處理
將test2?錄壓縮: zip test2.zip test2/*
解壓到tmp?錄: unzip test2.zip -d /tmp

21. rzsz

rzsz是Linux/Unix系統中輕量級文件傳輸工具集,基于Zmodem協議(一種可靠的異步文件傳輸協議),用于通過終端會話(如SSH、串口)實現本地與遠程服務器之間的文件上傳(rz)和下載(sz。它無需額外安裝FTP/SCP服務,操作簡單,是系統管理員和開發者常用的小文件傳輸工具。

一、核心概念
  • 協議基礎:Zmodem協議,支持斷點續傳錯誤校驗高速傳輸(比早期的Xmodem/Ymodem更高效)。
  • 核心命令
  • rz(Receive Zmodem):本地→遠程(從本地計算機上傳文件到遠程服務器);
  • sz(Send Zmodem):遠程→本地(從遠程服務器下載文件到本地計算機)。
二、安裝方法

rzsz通常需要手動安裝(部分Linux發行版默認不包含),以下是常見發行版的安裝命令:

  • Ubuntu/Debian
sudo apt update && sudo apt install lrzsz
  • CentOS/RHEL(7及以下):
sudo yum install lrzsz
  • CentOS/RHEL 8+/Fedora
sudo dnf install lrzsz
三、常用命令及示例
1. 上傳文件(rz

作用:從本地計算機選擇文件,上傳到遠程服務器的當前目錄。
基本用法

rz

運行效果:本地終端會彈出文件選擇窗口(需終端支持,如PuTTY、Xshell、Terminal),選擇要上傳的文件后,自動開始傳輸。

常用參數

  • -b二進制模式(必選,用于傳輸非文本文件,如圖片、壓縮包、可執行文件,避免文件損壞);
  • -y覆蓋模式(若遠程服務器已存在同名文件,直接覆蓋,無需確認);
  • -e強制Zmodem協議(用于兼容性問題,如終端未自動識別Zmodem)。

示例(二進制模式上傳,覆蓋現有文件):

rz -b -y
2. 下載文件(sz

作用:從遠程服務器選擇文件/目錄,下載到本地計算機的指定路徑。
基本用法(下載單個文件):

sz 文件名

下載目錄(需遞歸)

sz -r 目錄名# -r:遞歸傳輸目錄下的所有文件

運行效果:本地終端會彈出保存路徑窗口,選擇保存位置后,自動開始傳輸。

常用參數

  • -b二進制模式(同rz,傳輸非文本文件必選);
  • -y覆蓋模式(覆蓋本地已存在的同名文件);
  • -r遞歸傳輸目錄(下載目錄時必選)。

示例(二進制模式下載目錄,覆蓋本地文件):

sz -b -y -r /home/user/docs# 下載遠程服務器的docs目錄到本地
四、注意事項
  1. 終端支持
    rzsz依賴支持Zmodem協議的終端,常見終端如:
    -Windows:PuTTY(需開啟“Connection→SSH→Zmodem”選項)、Xshell、SecureCRT;
    -macOS:Terminal(默認支持)、iTerm2;
    -Linux:GNOME Terminal(默認支持)、Konsole。
    若終端不支持Zmodem,rzsz無法彈出文件選擇窗口,需用rz -esz -e強制使用,并通過命令行指定文件(但不推薦)。

  2. 傳輸模式

  • 文本文件(如.txt.conf):可使用默認的ASCII模式(無需-b);
  • 非文本文件(如.zip.jpg.exe):必須使用二進制模式-b參數),否則會導致文件損壞(如圖片無法打開、壓縮包無法解壓)。
  1. 權限問題
  • 上傳文件時,遠程服務器的當前目錄需有寫入權限(如chmod 777 /tmp);
  • 下載文件時,本地計算機的保存路徑需有寫入權限(如~/Downloads目錄通常有寫入權限)。
  1. 斷點續傳
    Zmodem協議支持斷點續傳,若傳輸中斷(如網絡斷開),重新運行rzsz,會自動續傳未完成的部分(需終端支持)。

  2. 文件名編碼
    若文件名包含中文或特殊字符,需確保終端的編碼設置正確(如UTF-8),否則可能出現文件名亂碼(如??-?–?.txt)。解決方法:在終端中設置編碼為UTF-8(如PuTTY的“Window→Translation→Remote character set”選擇“UTF-8”)。


22. bc指令

bc是Linux系統中用于浮點運算的便捷工具,支持高精度的數學計算(如加減乘除、平方根、指數等),常用于需要精確浮點結果的場景(如腳本中的數值處理)。

23. uname命令

  • 語法uname [選項]
  • 功能:獲取操作系統及硬件的基本信息(如內核版本、主機名、硬件類型等)。
  • 補充說明:可顯示Linux主機的操作系統版本、硬件名稱等關鍵信息。
  • 常用選項
  • -a/--all:詳細輸出所有信息,依次為:內核名主機名內核版本號內核版本硬件名處理器類型硬件平臺類型操作系統名稱(最常用)。

這里是引用

24. 重要熱鍵

  • [Tab]:具有命令補全(輸入命令前綴后按Tab,自動補全完整命令)和檔案補齊(輸入文件/目錄前綴后按Tab,自動補全路徑)功能,提升操作效率。
  • [Ctrl]-c:強制停止當前運行的程序(如終止陷入死循環的腳本)。
  • [Ctrl]-d:表示鍵盤輸入結束(EOF,End Of File),常用于退出交互程序(如代替exit命令退出Shell)。

25. 關機命令(shutdown)

  • 語法shutdown [選項]
  • 常見選項
  • -h:停止所有系統服務后,立即關機(等價于halt)。
  • -r:停止所有系統服務后,重新啟動(等價于reboot)。
  • -t sec:延遲sec秒后執行關機/重啟操作(如shutdown -t 60 -h表示60秒后關機)。

掌握這些基礎命令后,你已具備Linux日常操作的必備技能。建議在終端中實際嘗試每個示例,實踐是鞏固知識的最佳方式!

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

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

相關文章

正點原子stm32F407學習筆記10——輸入捕獲實驗

一、輸入捕獲簡介 輸入捕獲模式可以用來測量脈沖寬度或者測量頻率。我們以測量脈寬為例&#xff0c;用一個簡圖來 說明輸入捕獲的原理&#xff0c;如圖所示&#xff1a;假定定時器工作在向上計數模式&#xff0c;圖中 t1到t2 時間&#xff0c;就是我們需要測量的高電平時間。測…

深入理解設計模式:狀態模式(State Pattern)

在軟件開發中&#xff0c;我們經常會遇到對象的行為隨著其內部狀態的變化而變化的情況。例如&#xff0c;一個訂單可能處于"待支付"、"已支付"、"已發貨"或"已完成"等不同狀態&#xff0c;每個狀態下訂單的操作邏輯可能完全不同。如果…

企業級網絡綜合集成實踐:VLAN、Trunk、STP、路由協議(OSPF/RIP)、PPP、服務管理(TELNET/FTP)與安全(ACL)

NE綜合實驗4 一、實驗拓撲二、實驗需求 按照圖示配置IP地址。Sw7和sw8之間的直連鏈路配置鏈路聚合。公司內部業務網段為vlan10和vlan20&#xff0c;vlan10是市場部&#xff0c;vlan20是技術部&#xff0c;要求對vlan進行命名以便區分識別&#xff1b;pc10屬于vlan10&#xff0c…

小架構step系列20:請求和響應的擴展點

1 概述通過上一篇了解請求和響應的流程&#xff0c;Spring在設計上留了不少擴展點。里面通過查找接口的方式獲取的地方&#xff0c;都可以成為一種擴展點&#xff0c;因為只要實現這類接口就可以成為Spring加載的一部分。本文了解一下這些擴展點&#xff0c;方便后面進行擴展。…

模型材質一鍵替換~輕松還原多種三維場景

1. 概述模型的材質決定了三維場景的整體視效&#xff0c;山海鯨可視化不僅支持模型材質的替換與編輯&#xff0c;而且提供了大量現成的模型材質供大家使用&#xff0c;能夠幫助大家實現更高效的三維場景搭建。模型材質主要分為PBR材質和水面材質兩個部分。其中大部分靜態模型都…

【JS逆向基礎】數據庫之mysql

前言&#xff1a;mysql數據庫管理系統&#xff0c;由瑞典MySQL AB 公司開發&#xff0c;目前屬于 Oracle 旗下公司。MySQL 最流行的關MySQL是一個開源免費的關系型數據庫管系型數據庫管理系統&#xff0c;在 WEB 應用方面ySQL是最好的 RDBMS (Relational Database Management S…

金融工程、金融與經濟學知識點

本文整理了20個金融工程、金融和經濟學知識點及邏輯&#xff0c;這些是理解金融市場運作和進行量化分析的基石。 1. 金融工程 - 遠期與期權&#xff08;Forward & Option&#xff09;的定價與風險管理 遠期定價&#xff1a; 利用無套利原則&#xff0c;遠期合約的價格應等…

Vue 3 中導出 Excel 文件

在 Vue 3 中導出 Excel 文件&#xff0c;通常可以使用一些流行的 JavaScript 庫&#xff0c;如 SheetJS (xlsx) 或者 exceljs。這里我將分別介紹如何使用這兩個庫來在 Vue 3 應用中導出 Excel 文件。方法 1&#xff1a;使用 SheetJS (xlsx)安裝 SheetJS首先&#xff0c;你需要安…

奇麟大數據:前端大文件上傳解決方案

在奇麟大數據業務系統的開發及使用過程中&#xff0c;例如OBS對象存儲文件管理、流計算DSC依賴管理&#xff0c;經常會遇到上傳文件這樣的基礎需求&#xff0c;一般情況下&#xff0c;前端上傳文件就是new FormData&#xff0c;然后把文件 append 進去&#xff0c;然后post發送…

立創EDA中雙層PCB疊層分析

立創EDA中雙層PCB疊層分析 結論&#xff1a;立創EDA中的雙層 PCB 疊層視圖相比傳統視圖&#xff0c;多出一個焊盤層&#xff08;博主命名&#xff09;&#xff1b; 1. 傳統雙層 PCB 疊層示意圖 絲印層 印刷元件標識、極性標記及廠商信息 輔助組裝與后期維護 阻焊層 覆蓋銅層表…

深入理解進程:從底層原理到硬件系統實戰

深入理解進程&#xff1a;從底層原理到嵌入式實戰&#xff08;3-4 萬字詳解&#xff09; 前言&#xff1a;為什么硬件開發者必須吃透進程&#xff1f; 作為嵌入式開發者&#xff0c;你可能會說&#xff1a;“我平時用的 RTOS 里只有任務&#xff08;Task&#xff09;&#xff0…

Elasticsearch 簡化指南:GCP Google Compute Engine

作者&#xff1a;來自 Elastic Eduard Martin 系列內容的一部分&#xff1a;開始使用 Elasticsearch&#xff1a;GCP 想獲得 Elastic 認證&#xff1f;看看下一期 Elasticsearch Engineer 培訓什么時候開始&#xff01; Elasticsearch 擁有豐富的新功能&#xff0c;幫助你根據…

STM32的定時器輸入捕獲-超聲波測距案例

STM32的定時器輸入捕獲-超聲波測距案例 gitee代碼輸入捕獲硬件電路案例說明主函數代碼 gitee代碼 https://gitee.com/xiaolixi/l-stm32/tree/master/STM32F103C8T6/2-1tem-ld-timer-input-pluse 輸入捕獲硬件電路 超聲波測距案例說明 使用超聲波測距傳感器使用tim1的輸入捕獲…

[特殊字符] Spring Boot 常用注解全解析:20 個高頻注解 + 使用場景實例

一文掌握 Spring Boot 中最常用的 20 個注解&#xff0c;涵蓋開發、配置、Web、數據庫、測試等場景&#xff0c;配合示例講解&#xff0c;一站式掌握&#xff01;&#x1f4cc; 一、核心配置類注解 1. SpringBootApplication 作用&#xff1a;標記為 Spring Boot 應用的入口類&…

【工具變量】地級市城市包容性綠色增長數據(2011-2023年)

城市包容性綠色增長是指在推動城市經濟增長的過程中&#xff0c;兼顧環境可持續性、社會公平和包容性發展的理念與實踐。它強調在實現綠色轉型和低碳發展的同時&#xff0c;保障社會各群體&#xff0c;特別是弱勢群體的利益與參與權利&#xff0c;確保增長成果能夠公平共享 本…

深入理解React Hooks:從使用到原理

4. 源碼解析類:《深入理解React Hooks:從使用到原理》 # 深入理解React Hooks:從使用到原理?? **背景**: - Hooks解決了Class組件的哪些問題? - 為什么不能在循環/條件中調用Hooks??? **核心原理**:### 1. Hooks鏈表 React內部維護一個單向鏈表:fiber.memoizedSta…

【云原生】Docker 部署 Elasticsearch 9 操作詳解

目錄 一、前言 二、Elasticsearch 9 新特性介紹 2.1 基于 Lucene 10 重大升級 2.2 Better Binary Quantization(BBQ) 2.3 Elastic Distributions of OpenTelemetry(EDOT) 2.4 LLM 可觀測性 2.5 攻擊發現與自動導入 2.6 ES|QL 增強 2.7 語義檢索 三、基于Docker部署…

uview-ui使用u-search搜索框

1、效果圖 2、帶地址搜索框&#xff0c;在微信小程序線上需要開啟地圖定位接口&#xff0c;若沒有權限則顯示不了城市名&#xff0c;注意事項參考uniapp相關地圖 API調用-CSDN博客 <template><view><u-sticky offset-top"-1"><u-search v-mode…

Elasticsearch+Logstash+Kibana部署

目錄 一、實驗準備 1.下載安裝 2.下載java 2.同步主機系統時間 二、部署 1.部署elasticsearch 修改 /etc/elasticsearch/elasticsearch.yml 配置文件 修改 /etc/hosts/ 文件 啟動elasticsearch 查看是否啟動進程netstat -antptu | grep java 2.部署logstash 進入/et…

TEngine學習

關于靜態類中的靜態變量賦值&#xff1a; public static class ActorEventDefine{public static readonly int ScoreChange RuntimeId.ToRuntimeId("ActorEventDefine.ScoreChange");public static readonly int GameOver RuntimeId.ToRuntimeId("ActorEventD…