以下文章來源於BDC+ ,作者bdcyouth
溫馨提示:為了更好的實際學習,建議大家使用PC端查閱復讀。
0. 開篇詞不管你是從事開發還是運維工作,都要懂Linux基本命令,Linux命令是Linux系統正常運行的核心。
如果是運維,那Linux命令是必備技能,因為要經常和伺服器打交道。
如果是開發,那Linux命令是中堅力量,因為要穩定高效運行應用程式。
說Linux 命令不重要的,站出來,我保證不大死你!
我和你打個賭,我猜你不敢!你在你司伺服器執行如下命令證明給我看看。
如果你敢,我就送你上熱搜。
咱言歸正傳,Linux中的命令大致分為兩類:內部命令和外部命令。
內部命令也稱shell內嵌命令,這些命令是寫在bash源碼的builtins裡面的,由shell 程序識別並在 shell 程序內部完成運行,通常在 Linux 系統加載運行時 shell 就被加載並駐留在系統內存中,不需要臨時去磁碟加載命令。而且解析內部命令 shell 不需要創建子進程,因此其執行速度比外部命令快。
外部命令存放在一個文件中,需要時候在文件中查找,這些文件定義在$PATH中,通常放在/bin,/usr/bin,/sbin,/usr/sbin目錄中。
那內部命令有哪些呢?我們可以通過enable命令來查看
enable .enable :enable [enable aliasenable bgenable bindenable breakenable builtinenable callerenable cdenable commandenable compgenenable completeenable compoptenable continueenable declareenable dirsenable disownenable echoenable enableenable evalenable execenable exitenable exportenable falseenable fcenable fgenable getoptsenable hashenable helpenable historyenable jobsenable killenable letenable localenable logoutenable mapfileenable popdenable printfenable pushdenable pwdenable readenable readarrayenable readonlyenable returnenable setenable shiftenable shoptenable sourceenable suspendenable testenable timesenable trapenable trueenable typeenable typesetenable ulimitenable umaskenable unaliasenable unsetenable wait外部命令表現為一個磁碟文件,存放在某一個目錄下,我們可以通過which命令來查看具體位置。
root@DESKTOP-KV8R5US:~# which ls //查看外部命令的磁碟路徑/bin/lsroot@DESKTOP-KV8R5US:~# whereis ls //whereis 不僅能查看文件路徑,還能查看幫助文檔的路徑ls: /bin/ls /usr/share/man/man1/ls.1.gz那如何更快速,準確的確定某一個命令到底是屬於內部命令還是外部命令,我們可以通過type命令來查看具體位置。
root@DESKTOP-KV8R5US:~# type helphelp is a shell builtinroot@DESKTOP-KV8R5US:~# type lsls is aliased to `ls --color=auto'root@DESKTOP-KV8R5US:~# type pwdpwd is a shell builtin執行過的命令都通過hash存在內存中,我們可以通過hash命令查看緩存的路徑。
1. 幫助命令1.1 help獲取shell內置命令的幫助信息,不能用於外部命令。
help [-dms] [pattern ...]1.2 man獲取幫助信息,沒有內部命令與外部命令的區分。
man [OPTION...] [SECTION] PAGE...1.3 infoinfo [OPTION]... [MENU-ITEM...]相比man來說,info獲取到的幫助文檔更加完整詳細。
我們最常用的一種情況是-h, --help
2. 組與用戶類2.1 group添加組
創建一個新的組groupbdc,並添加組 ID:325。
# groupadd -g 325 groupbdc修改組
刪除組groupbdc為groupbdc+。倘若該群組中仍包括某些用戶,則必須先刪除這些用戶後,方能刪除群組。
# groupmod -n newgroupbdc groupbdc查看組
查看組帳戶信息
查看安全組帳戶信息
查看密碼套件配置。
cat /etc/login.defs Shadow2.2 user添加用戶
添加用戶userbdc。
為添加用戶指定用戶組。
# useradd -g groupbdc userbdc創建一個系統用戶。
刪除用戶
刪除userbdc用戶以及與此用戶相關的所有文件。
修改用戶
修改userbdc用戶為root用戶組
# usermod –g root userbdc切換用戶
切換用戶,只能獲得用戶的執行權限,不能獲得環境變量
切換到用戶並獲得該用戶的環境變量及執行權限
查看登錄用戶信息
查看創建了哪些組
顯示自身用戶名稱
顯示登錄用戶的用戶名
顯示有哪些用戶登錄到了本臺機器上
sudo
修改配置文件/etc/sudoers
## Allow root to run any commands anywhereroot ALL=(ALL) ALLuserbdc ALL=(ALL) ALL或 NOPASSWD:ALL(不需要輸入密碼)3 文件目錄類3.1 pwd-L 如果指定當前工作目錄,則列印$PWD的值。ehco $PWD 默認就是 -L3.2 ls基本語法
顯示指定工作目錄下的內容
|文件類型以及權限|連結數|文件屬主|文件屬組|文件大小(單位:Byte)|
最後一次操作的時間|文件名稱
-A 不列出 "." (目前目錄) 及 ".." (父目錄)-F 在列出的文件名稱後加一符號;例如可執行檔則加 "*", 目錄則加 "/"-a 顯示所有文件及目錄,包括以"."開頭的隱藏檔-l 除文件名稱外,亦將文件型態、權限、擁有者、文件大小等資訊詳細列出3.3 mkdir3.4 rmdir3.5 touch3.6 cd實例
cd -P # 跳轉到實際物理路徑,而非快捷方式路徑3.7 cp基本用法
複製文件或目錄
cp [options] source dest 或 cp [options] source... directory實例
使用指令"cp"將當前目錄"test/"下的所有文件複製到新目錄"newDir"下
3.8 rm基本語法
刪除文件或目錄
rm [options] fileName或dirName...常用案例
遞歸刪目錄中所有內容
刪除當前目錄下的所有文件及目錄
需要注意
文件一旦通過rm命令刪除,則無法恢復,所以必須格外小心地使用該命令。
3.9 mv基本語法
移動文件、目錄或重命名
mv [options] source dest #重命名mv [options] source... directory #移動常用案例
將文件oldFileName.txt重命名為newFileName.txt
mv oldFileName.txt newFileName.txt將文件fileName移動到目錄dir
需要注意
如果目錄存在,則該命令執行移動操作。
如果目錄不存在,則該命令執行修改操作。
3.10 cat-n 或 -number : 對輸出的內容進行編號-b 或 --number-nonblank:和 -n 相似,只不過對於空白行不編號。常用案例
root@DESKTOP-KV8R5US:/# cat -number a.txt3.11 tac常用實例
root@DESKTOP-KV8R5US:/# tac a.txt3.12 moreq:代表立刻離開 more ,不再顯示該文件內容。
常用實例
root@DESKTOP-KV8R5US:/# more a.txt3.13 less基本用法
less 的作用與 more 十分相似,都可以用來瀏覽文字檔案的內容,不同的是 less 允許使用[pageup] [pagedown]往回滾動。
/字串 :向下搜尋『字串』的功能;n:向下查找;N:向上查找;
?字串 :向上搜尋『字串』的功能;n:向上查找;N:向下查找;
常用實例
root@DESKTOP-KV8R5US:/# less a.txt3.14 head常用實例
root@DESKTOP-KV8R5US:/# head -n 1 a.txttotal 5803.15 tail常用實例
root@DESKTOP-KV8R5US:/# tail -n 1 a.txtdrwxr-xr-x 1 root root 512 Mar 5 00:02 var3.16 echo基本用法
顯示一行文本,用於字符串的輸出。
echo [SHORT-OPTION]... [STRING]...echo LONG-OPTION常用案例
顯示普通字符串
root@DESKTOP-KV8R5US:/# echo "hello bdc+"hello bdc+顯示轉義字符
root@DESKTOP-KV8R5US:/# echo "\"It is echo\"""It is echo"顯示變量
root@DESKTOP-KV8R5US:/# echo $PWD/顯示換行
root@DESKTOP-KV8R5US:/# echo -e "OK! \n"OK!輸出結構到文件
root@DESKTOP-KV8R5US:/# echo "It is echo" > myfileroot@DESKTOP-KV8R5US:/# cat myfileIt is echo顯示命令內容
root@DESKTOP-KV8R5US:/# echo `date`Tue Jun 23 10:44:48 CST 20203.17 >>基本語法
重定向
> 列表的內容寫入文件中(覆蓋寫)>> 列表的內容追加到文件末尾常用案例
root@DESKTOP-KV8R5US:/# ls -l > a.txtroot@DESKTOP-KV8R5US:/# ls -l >> a.txt3.18 ln基本用法
Linux ln命令是一個非常重要命令,它的功能是為某一個文件在另外一個位置建立一個同步的連結。
當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在 其它的目錄下用ln命令連結(link)它就可以,不必重複的佔用磁碟空間。
Linux文件系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種 : 硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個文件系統中,而軟連結卻可以跨越不同的文件系統。
不論是硬連結或軟連結都不會將原本的檔案複製一份,只會佔用非常少量的磁碟空間。
軟連結,以路徑的形式存在。類似於Windows作業系統中的快捷方式
軟連結可以 跨文件系統 ,硬連結不可以
軟連結可以對一個不存在的文件名進行連結
軟連結可以對目錄進行連結
硬連結,以文件副本的形式存在。但不佔用實際空間。
不允許給目錄創建硬連結
硬連結只有在同一個文件系統中才能創建
ln [options] [source/dir] [dest/dir]常用實例
給hadoop目錄創建軟連結/ln/hadoop,如果hadoop丟失,/ln/hadoop將失效:
cd不加參數進入是軟連結的地址
cd加參數進入是實際的物理地址
3.19 history基本用法
顯示所操作歷史記錄列表。
history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]4. 文件權限類4.1 文件屬性Linux系統是一種典型的多用戶系統,不同的用戶處於不同的地位,擁有不同的權限。為了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規定。在Linux中我們可以使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組。
文件類型屬主權限屬組權限其他用戶權限01 2 34 5 67 8 9dR w xR - xR - x目錄文件讀 寫 執行讀 寫 執行讀 寫 執行0首位表示類型
在Linux中第一個字符代表這個文件是目錄、文件或連結文件等等
c 字符流,裝置文件裡面的串行埠設備,例如鍵盤、滑鼠(一次性讀取裝置)b 設備文件,裝置文件裡面的可供儲存的接口設備(可隨機存取裝置)第1-3位確定屬主(該文件的所有者)擁有該文件的權限。---User
第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限,---Group
第7-9位確定其他用戶擁有該文件的權限 ---Other
rxw作用文件和目錄的不同解釋
[ w ]代表可寫(write): 可以修改,但是不代表可以刪除該文件,刪除一個文件的前提條件是對該文件所在的目錄有寫權限,才能刪除該文件.[ x ]代表可執行(execute):可以被系統執行[ r ]代表可讀(read): 可以讀取,ls查看目錄內容
[ w ]代表可寫(write): 可以修改,目錄內創建+刪除+重命名目錄
[ x ]代表可執行(execute):可以進入該目錄
4.2 chmod改變權限基本用法
文件類型屬主權限 u屬組權限 g其他用戶權限 o01 2 34 5 67 8 9dR w xR - xR - x目錄文件讀 寫 執行讀 寫 執行讀 寫 執行u:所有者 g:所有組 o:其他人 a:所有人(u、g、o的總和)
chmod [{ugoa}{+-=}{rwx}] [文件或目錄] [mode=421 ] [文件或目錄] chmod [mode=421 ] [文件或目錄]功能描述
改變文件或者目錄權限
文件: r-查看;w-修改;x-執行文件
目錄: r-列出目錄內容;w-在目錄中創建和刪除;x-進入目錄
刪除一個文件的前提條件:該文件所在的目錄有寫權限,你才能刪除該文件。
4.3 chown改變所有者基本語法
chown [最終用戶] [文件或目錄] (功能描述:改變文件或者目錄的所有者)4.4 chgrp改變所屬組基本語法
chgrp [最終用戶組] [文件或目錄] (功能描述:改變文件或者目錄的所屬組)5. 時間日期類5.1 date顯示當前時間data 顯示當前時間
Tue Jun 16 20:03:43 CST 2020date +%Y 顯示當前年份 (Y是4位的年/y是2位的年)
date +%Y%m%d date +%Y-%m-%d date +%Y/%m/%d 顯示當前年月日各種格式
202006162020-06-16 2020/06/16date "+%Y-%m-%d %H:%M:%S" 顯示年月日時分秒
5.2 date 顯示非當前時間date -d yesterday +%Y%m%d 或 date -d '1 days ago' 顯示昨天當下時間
20200615 或 Tue Jun 15 20:12:55 CST 2020date -d next-day +%Y%m%d 或 date -d 'next monday' 顯示明天當下時間
20200617 或 Tue Jun 17 20:15:15 CST 20205.3 date 設置系統時間date -s 字符串時間
date -s "xxxx-xx-xx xx:xx:xx"在設置完時間之後我們可以將其寫入到BIOS,避免重啟失效
在計算機領域,CMOS常指保存計算機基本啟動信息(如日期、時間、啟動設置等)的晶片。有時人們會把CMOS和BIOS混稱,其實CMOS是主板上的一塊可讀寫的並行或串行FLASH晶片,是用來保存BIOS的硬體配置和用戶對某些參數的設定。
5.4 cal 查看日曆cal 顯示本月日曆
June 2020Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30cal 2000 顯示某年(2000)日曆
2000 January February MarchSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 1 2 3 4 5 1 2 3 4 2 3 4 5 6 7 8 6 7 8 9 10 11 12 5 6 7 8 9 10 11 9 10 11 12 13 14 15 13 14 15 16 17 18 19 12 13 14 15 16 17 1816 17 18 19 20 21 22 20 21 22 23 24 25 26 19 20 21 22 23 24 2523 24 25 26 27 28 29 27 28 29 26 27 28 29 30 3130 31
April May JuneSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 1 2 3 4 5 6 1 2 3 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 1716 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 2423 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 3030
July August SeptemberSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 1 2 3 4 5 1 2 2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9 9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 1616 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 2323 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 3030 31
October November DecemberSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 1 2 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 915 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 1622 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 2329 30 31 26 27 28 29 30 24 25 26 27 28 29 30 31cal -3 顯示系統前一個月,當前月,下一個月的日曆
May 2020 June 2020 July 2020Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 1 2 3 4 5 6 1 2 3 4 3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 1110 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 1817 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 2524 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31316. 搜索查找類6.1 find基本語法
find 查找文件或者目錄
find指令將從指定目錄向下遞歸地遍歷其各個子目錄,將滿足條件的文件顯示在終端。
選項功能-name<查詢方式>按照指定的文件名查找模式查找文件-user<用戶名>查找屬於指定用戶名所有文件常用實例
按文件名:根據名稱查找/opt目錄下的filename.txt文件。
find /opt/ -name filename.txt按擁有者:查找/opt目錄下,用戶名稱為userbdc的文件。
按文件大小:在/home目錄下查找大於200m的文件(+n 大於 -n小於 n等於)。
6.2 grep基本語法
grep 在文件內搜索字符串匹配的行並輸出
管道符,「|」,表示將前一個命令的處理結果輸出傳遞給後面的命令處理
6.3 which7. 進程線程類進程是正在執行的一個程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,並佔用一定的系統資源。
7.1 ps基本語法
ps 即 process status 進程狀態縮寫
查看系統中所有進程
查看父子進程之間的關係
特點
如果想查看進程的CPU****佔用率和內存佔用率,可以使用aux;
如果想查看進程的父進程****ID可以使用ef;
常用實例
USER:該進程是由哪個用戶產生的
PID:進程的ID號
%CPU:該進程佔用CPU資源的百分比,佔用越高,進程越耗費資源;
%MEM:該進程佔用物理內存的百分比,佔用越高,進程越耗費資源;
VSZ:該進程佔用虛擬內存的大小,單位KB;
RSS:該進程佔用實際物理內存的大小,單位KB;
TTY:該進程是在哪個終端中運行的。其中tty1-tty7代表本地控制臺終端,tty1-tty6是本地的字符界面終端,tty7是圖形終端。pts/0-255代表虛擬終端。
STAT:進程狀態。常見的狀態有:R:運行、S:睡眠、T:停止狀態、s:包含子進程、+:位於後臺
START:該進程的啟動時間
TIME:該進程佔用CPU的運算時間,注意不是系統時間
COMMAND:產生此進程的命令名
UID:用戶ID
PID:進程ID
PPID:父進程ID
C:CPU用於計算執行優先級的因子。數值越大,表明進程是CPU密集型運算,執行優先級會降低;數值越小,表明進程是I/O密集型運算,執行優先級會提高
STIME:進程啟動的時間
TTY:完整的終端名稱
TIME:CPU時間
CMD:啟動進程所用的命令和參數
7.2 top基本語法
查看系統基本狀態
top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]-d 秒數:指定top命令每隔幾秒更新。默認是3秒在top命令的交互模式當中可以執行的命令:-p:通過指定監控進程ID來僅僅監控某個進程的狀態。-s :使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。操作選項
P:以CPU使用率排序,默認就是此項
M:以內存的使用率排序
N:以PID排序
q:退出top
查詢結果欄位解釋
第一行信息為任務隊列信息
內容說明12:26:46系統當前時間up 1 day, 13:32系統的運行時間,本機已經運行1天 13小時32分鐘2 users當前登錄了兩個用戶load average: 0.00, 0.00, 0.00系統在之前1分鐘,5分鐘,15分鐘的平均負載。一般認為小於1時,負載較小。如果大於1,系統已經超出負荷。第二行為進程信息
Tasks: 95 total系統中的進程總數1 running正在運行的進程數94 sleeping睡眠的進程0 stopped正在停止的進程0 zombie殭屍進程。如果不是0,需要手工檢 查殭屍進程第三行為CPU信息
Cpu(s): 0.1%us用戶模式佔用的CPU百分比0.1%sy系統模式佔用的CPU百分比0.0%ni改變過優先級的用戶進程佔用的CPU百分比99.7%id空閒CPU的CPU百分比0.1%wa等待輸入/輸出的進程的佔用CPU百分比0.0%hi硬中斷請求服務佔用的CPU百分比0.1%si軟中斷請求服務佔用的CPU百分比0.0%stst(Steal time)虛擬時間百分比。就是當有虛擬機時,虛擬CPU等待實際CPU的時間百分比。第四行為物理內存信息
Mem: 625344k total物理內存的總量,單位KB571504k used已經使用的物理內存數量53840k free空閒的物理內存數量,我們使用的是虛擬機,總共只分配了628MB內存,所以只有53MB的空閒內存了65800k buffers作為緩衝的內存數量第五行為交換分區(swap)信息
Swap: 524280k total交換分區(虛擬內存)的總大小0k used已經使用的交互分區的大小524280k free空閒交換分區的大小409280k cached作為緩存的交互分區的大小7.3 pstree基本語法
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]7.4 kill7.5 netstat基本語法
查看該進程網絡信息&查看埠號佔用情況
netstat –anp|grep 埠號 (功能描述:此命令用來顯示整個系統目前的網絡情況。例如目前的連接、數據包傳遞數據、或是路由表內容)netstat -nlp | grep 埠號 (功能描述:查看網絡埠號佔用情況)常用實例
netstat -anp | grep 500708. 打包壓縮類8.1 gzip/gunzip基本語法
壓縮文件,只能將文件壓縮為*.gz文件
解壓縮文件命令
8.2 zip/unzip基本語法
zip + 參數 + XXX.zip + 將要壓縮的文件或目錄特點
文件和目錄皆可壓縮
window/linux通用且可以壓縮目錄且保留源文件
8.3 tar基本語法
tar + 參數 + XXX.tar.gz + 將要打包進去的內容常用實例
解壓
tar -zxvf test.tar.gz –C /dir壓縮
9. 軟體包類9.1 rpm概述
RPM(RedHat Package Manager),Rethat軟體包管理工具,類似windows裡面的setup.exe是Linux這系列作業系統裡面的打包安裝工具,它雖然是RedHat的標誌,但理念是通用的。
RPM包的名稱格式
Apache-1.3.23-11.i386.rpm
- 「apache」 軟體名稱
- 「1.3.23-11」軟體的版本號,主版本和此版本
- 「i386」是軟體所運行的硬體平臺
- 「rpm」文件擴展名,代表RPM包
查詢命令
查詢所安裝的所有rpm軟體包
由於軟體包比較多,一般都會採取過濾
卸載命令
一般常規卸載
如果該RPM包的安裝依賴其它包,即使其它包沒裝,也強迫安裝。
9.2 yum概述
在Linux上使用源碼的方式安裝軟體非常麻煩,使用yum可以簡化安裝的過程
基本語法
yum [options] [command] [package ...]參數功能install安裝rpm軟體包update更新rpm軟體包check-update檢查是否有可用的更新rpm軟體包remove刪除指定的rpm軟體包list顯示軟體包信息clean清理yum過期的緩存deplist顯示yum軟體包的所有依賴關係常用實例
安裝指定軟體並確認安裝
yum install -y <package_name>刪除指定軟體並確認刪除
yum remove -y <package_name>列出所有可安裝的軟體清單命令
列出一個包所有依賴的包
列出所有可更新的軟體清單命令
更新所有軟體命令
僅更新指定的軟體命令
yum update <package_name>查找軟體包 命令
清除緩存目錄下的軟體包及舊的headers
寫在最後選擇不對努力白費,選擇若對事半功倍。
正確使用一些快捷鍵可以讓你更高效的完成任務。
ctrl + c:停止進程
ctrl+l:清屏
ctrl + q:退出
ctrl +alt:linux和Windows之間切換
上下鍵:查找執行過的命令
tab鍵:自動補全
推薦閱讀: